mirror of
https://github.com/enzet/map-machine.git
synced 2025-05-04 20:56:46 +02:00
Fix label mode argument.
This commit is contained in:
parent
b086b0d108
commit
b0de6754c1
4 changed files with 36 additions and 15 deletions
|
@ -115,7 +115,7 @@ def main(argv) -> None:
|
|||
|
||||
painter: Painter = Painter(
|
||||
show_missing_tags=options.show_missing_tags, overlap=options.overlap,
|
||||
mode=options.mode, draw_captions=options.draw_captions,
|
||||
mode=options.mode, label_mode=options.label_mode,
|
||||
map_=map_, flinger=flinger, svg=svg, icon_extractor=icon_extractor,
|
||||
scheme=scheme)
|
||||
|
||||
|
|
|
@ -36,15 +36,21 @@ class Painter:
|
|||
"""
|
||||
|
||||
def __init__(
|
||||
self, map_: Map, flinger: Flinger,
|
||||
svg: svgwrite.Drawing, icon_extractor: ShapeExtractor,
|
||||
scheme: Scheme, show_missing_tags: bool = False, overlap: int = 12,
|
||||
mode: str = "normal", draw_captions: str = "main"
|
||||
self,
|
||||
map_: Map,
|
||||
flinger: Flinger,
|
||||
svg: svgwrite.Drawing,
|
||||
icon_extractor: ShapeExtractor,
|
||||
scheme: Scheme,
|
||||
show_missing_tags: bool = False,
|
||||
overlap: int = 12,
|
||||
mode: str = "normal",
|
||||
label_mode: str = "main"
|
||||
):
|
||||
self.show_missing_tags: bool = show_missing_tags
|
||||
self.overlap: int = overlap
|
||||
self.mode: str = mode
|
||||
self.draw_captions: str = draw_captions
|
||||
self.label_mode: str = label_mode
|
||||
|
||||
self.map_: Map = map_
|
||||
self.flinger: Flinger = flinger
|
||||
|
@ -263,9 +269,11 @@ class Painter:
|
|||
ui.progress_bar(
|
||||
steps * 2 + index, steps * 3, step=10, text="Drawing texts"
|
||||
)
|
||||
if (self.mode not in [CREATION_TIME_MODE, AUTHOR_MODE] and
|
||||
self.draw_captions != "no"):
|
||||
point.draw_texts(self.svg, occupied)
|
||||
if (
|
||||
self.mode not in [CREATION_TIME_MODE, AUTHOR_MODE]
|
||||
and self.label_mode != "no"
|
||||
):
|
||||
point.draw_texts(self.svg, occupied, self.label_mode)
|
||||
|
||||
ui.progress_bar(-1, len(nodes), step=10, text="Drawing nodes")
|
||||
|
||||
|
|
|
@ -154,19 +154,31 @@ class Point(Tagged):
|
|||
return True
|
||||
|
||||
def draw_texts(
|
||||
self, svg: svgwrite.Drawing, occupied: Optional[Occupied] = None
|
||||
self,
|
||||
svg: svgwrite.Drawing,
|
||||
occupied: Optional[Occupied] = None,
|
||||
label_mode: str = "main",
|
||||
) -> None:
|
||||
"""
|
||||
Draw all labels.
|
||||
"""
|
||||
for text_struct in self.labels: # type: Label
|
||||
text = text_struct.text
|
||||
labels: List[Label]
|
||||
|
||||
if label_mode == "main":
|
||||
labels = self.labels[:1]
|
||||
elif label_mode == "all":
|
||||
labels = self.labels
|
||||
else:
|
||||
return
|
||||
|
||||
for label in labels:
|
||||
text = label.text
|
||||
text = text.replace(""", '"')
|
||||
text = text.replace("&", '&')
|
||||
text = text[:26] + ("..." if len(text) > 26 else "")
|
||||
self.draw_text(
|
||||
svg, text, self.point + np.array((0, self.y)),
|
||||
occupied, text_struct.fill, size=text_struct.size
|
||||
occupied, label.fill, size=label.size
|
||||
)
|
||||
|
||||
def draw_text(
|
||||
|
|
|
@ -45,8 +45,9 @@ def parse_options(args) -> argparse.Namespace:
|
|||
dest="scale",
|
||||
type=float)
|
||||
parser.add_argument(
|
||||
"--captions", "--no-draw-captions",
|
||||
dest="draw_captions",
|
||||
"--labels",
|
||||
help="label drawing mode: `no`, `main`, or `all`",
|
||||
dest="label_mode",
|
||||
default="main")
|
||||
parser.add_argument(
|
||||
"--show-missing-tags",
|
||||
|
|
Loading…
Add table
Reference in a new issue