diff --git a/roentgen/constructor.py b/roentgen/constructor.py index ba05b13..24fac19 100644 --- a/roentgen/constructor.py +++ b/roentgen/constructor.py @@ -11,9 +11,8 @@ from colour import Color from roentgen import ui from roentgen.color import get_gradient_color -from roentgen.figure import Building, StyledFigure, Road +from roentgen.figure import Building, Road, StyledFigure from roentgen.flinger import Flinger - # fmt: off from roentgen.icon import ( DEFAULT_SMALL_SHAPE_ID, Icon, IconSet, ShapeExtractor, ShapeSpecification @@ -24,6 +23,7 @@ from roentgen.osm_reader import ( from roentgen.point import Point from roentgen.scheme import DEFAULT_COLOR, LineStyle, Scheme from roentgen.util import MinMax + # fmt: on __author__ = "Sergey Vartanov" @@ -375,6 +375,8 @@ class Constructor: self.icon_extractor, tags, processed ) labels = self.scheme.construct_text(tags, "all", processed) + self.scheme.process_ignored(tags, processed) + point: Point = Point( icon_set, labels, tags, processed, flung, node.coordinates, priority=priority, draw_outline=draw_outline diff --git a/roentgen/scheme.py b/roentgen/scheme.py index d9f5d33..7255896 100644 --- a/roentgen/scheme.py +++ b/roentgen/scheme.py @@ -477,3 +477,16 @@ class Scheme: if matcher.is_matched(tags): return True return False + + def process_ignored( + self, tags: Dict[str, str], processed: Set[str] + ) -> None: + """ + Mark all ignored tag as processed. + + :param tags: input tag dictionary + :param processed: processed set + """ + for tag in tags: + if self.is_no_drawable(tag): + processed.add(tag)