rendermap: add --show-accessibles

This commit is contained in:
Laura Klünder 2016-12-04 13:47:36 +01:00
parent 516d7921ce
commit 01e6674cd0
3 changed files with 25 additions and 4 deletions

View file

@ -6,5 +6,9 @@ from c3nav.mapdata.render import render_all_levels
class Command(BaseCommand):
help = 'render the map'
def add_arguments(self, parser):
parser.add_argument('--show-accessibles', action='store_const', const=True, default=False,
help='highlight graph building areas (for debugging, but it looks nice, too)')
def handle(self, *args, **options):
render_all_levels()
render_all_levels(show_accessibles=options['show_accessibles'])

View file

@ -2,13 +2,13 @@ from c3nav.mapdata.models import Level
from c3nav.mapdata.render.renderer import LevelRenderer, get_render_path # noqa
def render_all_levels():
def render_all_levels(show_accessibles=False):
renderers = []
for level in Level.objects.all().order_by('altitude'):
renderers.append(LevelRenderer(level))
for renderer in renderers:
renderer.render_base()
renderer.render_base(show_accessibles=show_accessibles)
for renderer in renderers:
if not renderer.level.intermediate:

View file

@ -91,7 +91,7 @@ class LevelRenderer():
})
svg.append(contents)
def render_base(self, png=True):
def render_base(self, png=True, show_accessibles=False):
svg = self.create_svg()
contents = self.add_svg_content(svg)
@ -111,6 +111,23 @@ class LevelRenderer():
fill_color='#000000',
fill_opacity=0.06))
if show_accessibles:
main_geometry = self.level.geometries.accessible.buffer(-0.6, join_style=JOIN_STYLE.mitre)
clear_geometry = self.level.geometries.accessible.buffer(-0.3, join_style=JOIN_STYLE.mitre)
missing_geometry = clear_geometry.difference(main_geometry.buffer(0.31, join_style=JOIN_STYLE.mitre))
contents.append(self.polygon_svg(clear_geometry,
fill_color='#FFFF00',
fill_opacity=0.5))
contents.append(self.polygon_svg(main_geometry,
fill_color='#009900',
fill_opacity=0.5))
contents.append(self.polygon_svg(missing_geometry,
fill_color='#FF9900',
fill_opacity=0.5))
contents.append(self.polygon_svg(self.level.geometries.elevatorlevels,
fill_color='#9EF8FB'))