From 6705f7418aff3ccefc84f4a206decb25115dba66 Mon Sep 17 00:00:00 2001 From: Sergey Vartanov Date: Tue, 22 Sep 2020 04:49:45 +0300 Subject: [PATCH] Issue #23: fix roof drawing. Roof drawing is now based on the building levels. --- roentgen/mapper.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/roentgen/mapper.py b/roentgen/mapper.py index 7bac1b3..025d32f 100644 --- a/roentgen/mapper.py +++ b/roentgen/mapper.py @@ -292,26 +292,18 @@ class Painter: # Building roof - building_paths: List[(str, Dict)] = [] + def sort_by_levels(building: Building): + return building.get_levels() - for way in constructor.buildings: # type: Building + for way in sorted(constructor.buildings, key=sort_by_levels): # type: Building shift = [0, -3] shift = np.array([ 0 * way.get_levels(), min(-3, -1 * way.get_levels())]) path: str = way.get_path(self.flinger, shift) if path: - building_paths.append((path, way.style)) - - for path, style in building_paths: - p = Path(d=path, opacity=1) - p.update(style) - p.update({"stroke": "none"}) - self.svg.add(p) - for path, style in building_paths: - p = Path(d=path, opacity=1) - p.update(style) - p.update({"fill": "none"}) - self.svg.add(p) + p = Path(d=path, opacity=1) + p.update(way.style) + self.svg.add(p) # Trees