rendermap: add hole shadows
This commit is contained in:
parent
655897fef1
commit
6e1c33e59a
2 changed files with 15 additions and 1 deletions
|
@ -176,3 +176,12 @@ class LevelGeometries():
|
|||
if to_level is not None:
|
||||
shadows = shadows.intersection(to_level.geometries.accessible)
|
||||
return shadows
|
||||
|
||||
def hole_shadows(self):
|
||||
holes = self.holes.buffer(0.1, join_style=JOIN_STYLE.mitre)
|
||||
shadows = holes.difference(self.holes.buffer(-0.3, join_style=JOIN_STYLE.mitre))
|
||||
qs = self.level.levelconnectors.prefetch_related('levels').filter(levels__altitude__lt=self.level.altitude)
|
||||
print(self.level.name, qs)
|
||||
connectors = cascaded_union([levelconnector.geometry for levelconnector in qs])
|
||||
shadows = shadows.difference(connectors.buffer(0.3, join_style=JOIN_STYLE.mitre))
|
||||
return shadows
|
||||
|
|
|
@ -172,6 +172,11 @@ class LevelRenderer():
|
|||
for level in lower:
|
||||
self.add_svg_image(svg, 'file://'+get_render_path('level-%s.base.png' % level.name))
|
||||
|
||||
contents = self.add_svg_content(svg)
|
||||
contents.append(self.polygon_svg(self.level.geometries.hole_shadows(),
|
||||
fill_color='#000000',
|
||||
fill_opacity=0.1))
|
||||
|
||||
filename = get_render_path('level-%s.simple.svg' % self.level.name)
|
||||
with open(filename, 'w') as f:
|
||||
f.write(ET.tostring(svg).decode())
|
||||
|
@ -195,7 +200,7 @@ class LevelRenderer():
|
|||
for level in higher:
|
||||
contents.append(self.polygon_svg(level.geometries.intermediate_shadows(to_level=self.level),
|
||||
fill_color='#000000',
|
||||
fill_opacity=0.05))
|
||||
fill_opacity=0.1))
|
||||
|
||||
for level in higher:
|
||||
self.add_svg_image(svg, 'file://'+get_render_path('level-%s.base.png' % level.name))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue