mirror of
https://github.com/enzet/map-machine.git
synced 2025-05-02 03:37:08 +02:00
Fix amenity tags; fix tag matching.
This commit is contained in:
parent
d5bbe2a553
commit
061d77d9d5
2 changed files with 37 additions and 32 deletions
|
@ -65,17 +65,6 @@ colors:
|
|||
|
||||
node_icons:
|
||||
|
||||
# Priorities:
|
||||
# - leisure,
|
||||
# - part of major transport network (bus stops, train stations, ports),
|
||||
# - important buildings (embassy),
|
||||
# - useful buildings (shops, restaurants),
|
||||
# - important street amenities (vending machines, ATMs),
|
||||
# - useful street amenities (trash cans, benches),
|
||||
# - doors,
|
||||
# - small objects unimportant for the majority of users (trees, lamps,
|
||||
# clocks, poles, manholes).
|
||||
|
||||
# No draw
|
||||
|
||||
- tags: {type: multipolygon}
|
||||
|
@ -281,6 +270,33 @@ node_icons:
|
|||
icon: [frame]
|
||||
- tags: {tourism: gallery}
|
||||
icon: [picture]
|
||||
- tags: {amenity: cafe}
|
||||
icon: [cafe]
|
||||
- tags: {amenity: ice_cream}
|
||||
icon: [ice_cream]
|
||||
- tags: {amenity: biergarten}
|
||||
icon: [beer]
|
||||
- tags: {amenity: nightclub}
|
||||
icon: [night_club]
|
||||
- tags: {amenity: restaurant}
|
||||
icon: [restaurant]
|
||||
- tags: {amenity: restaurant;bar}
|
||||
icon: [restaurant]
|
||||
add_icon: [bar]
|
||||
- tags: {shop: ice_cream}
|
||||
icon: [ice_cream]
|
||||
- tags: {shop: gift}
|
||||
icon: [gift]
|
||||
- tags: {shop: clothes}
|
||||
icon: [shop_clothes]
|
||||
- tags: {amenity: shop, shop: clothes}
|
||||
icon: [shop_clothes]
|
||||
- tags: {shop: convenience}
|
||||
icon: [shop_convenience]
|
||||
- tags: {amenity: shop, shop: convenience}
|
||||
icon: [shop_convenience]
|
||||
- tags: {shop: electronics}
|
||||
icon: [tv]
|
||||
|
||||
# Big objects not for all
|
||||
|
||||
|
@ -298,20 +314,6 @@ node_icons:
|
|||
icon: [japan_elementary_school]
|
||||
- tags: {office: telecommunication}
|
||||
icon: [telephone]
|
||||
- tags: {shop: clothes}
|
||||
icon: [shop_clothes]
|
||||
- tags: {amenity: shop, shop: clothes}
|
||||
icon: [shop_clothes]
|
||||
- tags: {shop: convenience}
|
||||
icon: [shop_convenience]
|
||||
- tags: {amenity: shop, shop: convenience}
|
||||
icon: [shop_convenience]
|
||||
- tags: {shop: electronics}
|
||||
icon: [tv]
|
||||
- tags: {shop: ice_cream}
|
||||
icon: [ice_cream]
|
||||
- tags: {shop: gift}
|
||||
icon: [gift]
|
||||
|
||||
# Not important big objects
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ class LineStyle:
|
|||
priority: float = 0.0
|
||||
|
||||
|
||||
def is_not_matched_tag(
|
||||
def is_matched_tag(
|
||||
matcher_tag_key: str, matcher_tag_value: str,
|
||||
tags: Dict[str, str]) -> bool:
|
||||
"""
|
||||
|
@ -45,10 +45,13 @@ def is_not_matched_tag(
|
|||
:param matcher_tag_value: tag value, tag value list, or "*"
|
||||
:param tags: element tags to check
|
||||
"""
|
||||
return (matcher_tag_key not in tags or
|
||||
(matcher_tag_value != "*" and
|
||||
tags[matcher_tag_key] != matcher_tag_value and
|
||||
tags[matcher_tag_key] not in matcher_tag_value))
|
||||
return (
|
||||
matcher_tag_key in tags and
|
||||
(matcher_tag_value == "*" or
|
||||
isinstance(matcher_tag_value, str) and
|
||||
tags[matcher_tag_key] == matcher_tag_value or
|
||||
isinstance(matcher_tag_value, list) and
|
||||
tags[matcher_tag_key] in matcher_tag_value))
|
||||
|
||||
|
||||
def is_matched(matcher: Dict[str, Any], tags: Dict[str, str]) -> bool:
|
||||
|
@ -62,14 +65,14 @@ def is_matched(matcher: Dict[str, Any], tags: Dict[str, str]) -> bool:
|
|||
|
||||
for config_tag_key in matcher["tags"]: # type: str
|
||||
tag_matcher = matcher["tags"][config_tag_key]
|
||||
if is_not_matched_tag(config_tag_key, tag_matcher, tags):
|
||||
if not is_matched_tag(config_tag_key, tag_matcher, tags):
|
||||
matched = False
|
||||
break
|
||||
|
||||
if "no_tags" in matcher:
|
||||
for config_tag_key in matcher["no_tags"]: # type: str
|
||||
tag_matcher = matcher["no_tags"][config_tag_key]
|
||||
if not is_not_matched_tag(config_tag_key, tag_matcher, tags):
|
||||
if is_matched_tag(config_tag_key, tag_matcher, tags):
|
||||
matched = False
|
||||
break
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue