diff --git a/src/c3nav/mapdata/render/base.py b/src/c3nav/mapdata/render/base.py index a5c021e0..7d12b63c 100644 --- a/src/c3nav/mapdata/render/base.py +++ b/src/c3nav/mapdata/render/base.py @@ -58,7 +58,8 @@ def get_render_level_data(level): 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)) - result = levels.values_list('geoms_cache', 'default_height') + result = ((pickle.loads(geoms_cache), default_height) + for geoms_cache, default_height in levels.values_list('geoms_cache', 'default_height')) cache.set(cache_key, result, 900) return levels diff --git a/src/c3nav/mapdata/render/svg.py b/src/c3nav/mapdata/render/svg.py index ce55eca8..6018f541 100644 --- a/src/c3nav/mapdata/render/svg.py +++ b/src/c3nav/mapdata/render/svg.py @@ -1,5 +1,3 @@ -import pickle - from shapely.geometry import box from c3nav.mapdata.render.base import get_render_level_data @@ -12,8 +10,7 @@ def render_svg(level, miny, minx, maxy, maxx, scale=1): within_coords = (minx-2, miny-2, maxx+2, maxy+2) bbox = box(*within_coords) - for geoms_cache, default_height in get_render_level_data(level): - geoms = pickle.loads(geoms_cache) + for geoms, default_height in get_render_level_data(level): for altitudearea_geom, altitude in geoms.altitudeareas: svg.add_geometry(bbox.intersection(altitudearea_geom), fill_color='#eeeeee', altitude=altitude)