From 3c01b620fa911af486a09f0bc545a0710ef71e0e Mon Sep 17 00:00:00 2001 From: Olaf Gladis Date: Fri, 25 Nov 2016 01:24:48 +0100 Subject: [PATCH] add map renderer add map renderer --- .../mapdata/management/commands/createsvg.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/c3nav/mapdata/management/commands/createsvg.py diff --git a/src/c3nav/mapdata/management/commands/createsvg.py b/src/c3nav/mapdata/management/commands/createsvg.py new file mode 100644 index 00000000..c94381a7 --- /dev/null +++ b/src/c3nav/mapdata/management/commands/createsvg.py @@ -0,0 +1,38 @@ +import os +from django.core.management.base import BaseCommand + +from c3nav.mapdata.models import Level + +svg_template = """ +{data} +""" + + +class Command(BaseCommand): + help = 'create svgs for each level' + + def add_arguments(self, parser): + parser.add_argument('folder', help='folder, where the svgs should be stored') + + def handle(self, *args, **options): + folder = options['folder'] + os.chdir(folder) + + for level in Level.objects.all(): + level_name = "level-{}.svg".format(level.name) + data = [] + for building in level.buildings.all(): + data.append(building.geometry.svg(fill_color="#c0c0c0")) + for area in level.areas.all(): + data.append(area.geometry.svg(fill_color="#a0a0a0")) + for obstacle in level.obstacles.all(): + data.append(obstacle.geometry.svg(fill_color="#ffa0a0")) + for door in level.doors.all(): + data.append(door.geometry.svg(fill_color="#f0a0f0")) + with open(level_name, 'w') as fh: + fh.write(svg_template.format(width=400, height=200, data='\n'.join(data)))