speedup get_render_level_data
This commit is contained in:
parent
eb370b430c
commit
03e35a019e
2 changed files with 10 additions and 5 deletions
|
@ -45,6 +45,11 @@ class LevelGeometries:
|
|||
|
||||
|
||||
def get_render_level_data(level):
|
||||
levels = Level.objects.filter(Q(on_top_of=level.pk) | Q(base_altitude__lte=level.base_altitude))
|
||||
if isinstance(level, Level):
|
||||
level_pk, level_base_altitude = level.pk, level.base_altitude
|
||||
else:
|
||||
level_pk, level_base_altitude = Level.objects.filter(pk=level).values_list('pk', 'base_altitude')[0]
|
||||
|
||||
levels = Level.objects.filter(Q(on_top_of=level_pk) | Q(base_altitude__lte=level_base_altitude))
|
||||
levels = levels.values_list('geoms_cache', 'default_height')
|
||||
return levels
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
from django.http import Http404, HttpResponse
|
||||
from django.shortcuts import get_object_or_404
|
||||
from shapely.geometry import box
|
||||
|
||||
from c3nav.mapdata.models import Level, Source
|
||||
|
@ -23,9 +22,10 @@ def tile(request, level, zoom, x, y, format):
|
|||
if not box(bounds[0][1], bounds[0][0], bounds[1][1], bounds[1][0]).intersects(box(minx, miny, maxx, maxy)):
|
||||
raise Http404
|
||||
|
||||
level = get_object_or_404(Level, pk=level)
|
||||
|
||||
svg = render_svg(level, miny, minx, maxy, maxx, scale=2**zoom)
|
||||
try:
|
||||
svg = render_svg(level, miny, minx, maxy, maxx, scale=2**zoom)
|
||||
except Level.DoesNotExist:
|
||||
raise Http404
|
||||
|
||||
if format == 'svg':
|
||||
response = HttpResponse(svg.get_xml(), 'image/svg+xml')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue