mirror of
https://github.com/enzet/map-machine.git
synced 2025-06-20 03:31:51 +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:
|
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
|
# No draw
|
||||||
|
|
||||||
- tags: {type: multipolygon}
|
- tags: {type: multipolygon}
|
||||||
|
@ -281,6 +270,33 @@ node_icons:
|
||||||
icon: [frame]
|
icon: [frame]
|
||||||
- tags: {tourism: gallery}
|
- tags: {tourism: gallery}
|
||||||
icon: [picture]
|
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
|
# Big objects not for all
|
||||||
|
|
||||||
|
@ -298,20 +314,6 @@ node_icons:
|
||||||
icon: [japan_elementary_school]
|
icon: [japan_elementary_school]
|
||||||
- tags: {office: telecommunication}
|
- tags: {office: telecommunication}
|
||||||
icon: [telephone]
|
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
|
# Not important big objects
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ class LineStyle:
|
||||||
priority: float = 0.0
|
priority: float = 0.0
|
||||||
|
|
||||||
|
|
||||||
def is_not_matched_tag(
|
def is_matched_tag(
|
||||||
matcher_tag_key: str, matcher_tag_value: str,
|
matcher_tag_key: str, matcher_tag_value: str,
|
||||||
tags: Dict[str, str]) -> bool:
|
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 matcher_tag_value: tag value, tag value list, or "*"
|
||||||
:param tags: element tags to check
|
:param tags: element tags to check
|
||||||
"""
|
"""
|
||||||
return (matcher_tag_key not in tags or
|
return (
|
||||||
(matcher_tag_value != "*" and
|
matcher_tag_key in tags and
|
||||||
tags[matcher_tag_key] != matcher_tag_value and
|
(matcher_tag_value == "*" or
|
||||||
tags[matcher_tag_key] not in matcher_tag_value))
|
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:
|
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
|
for config_tag_key in matcher["tags"]: # type: str
|
||||||
tag_matcher = matcher["tags"][config_tag_key]
|
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
|
matched = False
|
||||||
break
|
break
|
||||||
|
|
||||||
if "no_tags" in matcher:
|
if "no_tags" in matcher:
|
||||||
for config_tag_key in matcher["no_tags"]: # type: str
|
for config_tag_key in matcher["no_tags"]: # type: str
|
||||||
tag_matcher = matcher["no_tags"][config_tag_key]
|
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
|
matched = False
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue