diff --git a/buildings-entrances.json b/buildings-entrances.json new file mode 100644 index 0000000..0950f11 --- /dev/null +++ b/buildings-entrances.json @@ -0,0 +1,25 @@ +{ + "type": "overpass", + "name": { + "de": "Eingänge", + "en": "Entrances" + }, + "query": { + "16": [ + "(", + " node[entrance];", + " node[building=entrance];", + ")" + ] + }, + "feature": { + "description": [ + "{% if tags.entrance == 'yes' or (not tags.entrance and tags.building == 'entrance') %}", + "{{ keyTrans('entrance') }}", + "{% else %}", + "{{ tagTrans('entrance', tags.entrance) }}", + "{% endif %}" + ], + "styles": "" + } +} diff --git a/buildings-figure-ground.json b/buildings-figure-ground.json new file mode 100644 index 0000000..726fc2b --- /dev/null +++ b/buildings-figure-ground.json @@ -0,0 +1,38 @@ +{ + "type": "overpass", + "name": { + "de": "Schwarzplan", + "en": "Figure-ground diagram" + }, + "query": { + "16": [ + "(", + " way[building];", + " relation[building];", + ")" + ] + }, + "feature": { + "markerSymbol": "", + "listMarkerSymbol": "{{ markerPolygon({fillColor: \"#000000\", fillOpacity: 1 })|raw }}", + "priority": [ + "{% set p = 100 %}", + "{% if tags.name %}{% set p = p - 10 %}{% endif %}", + "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", + "{% if tags.historic %}{% set p = p - 1 %}{% endif %}", + "{% if tags.culture %}{% set p = p - 1 %}{% endif %}", + "{% if tags.highway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.railway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.aeroway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", + "{% if tags.tourism %}{% set p = p - 1 %}{% endif %}", + "{{ p }}" + ], + "style": { + "width": "0", + "color": "#000000", + "fillColor": "#000000", + "fillOpacity": "1" + } + } +} diff --git a/buildings-height.json b/buildings-height.json new file mode 100644 index 0000000..28c2e14 --- /dev/null +++ b/buildings-height.json @@ -0,0 +1,104 @@ +{ + "type": "overpass", + "name": { + "de": "Gebäudehöhen", + "en": "Building height" + }, + "query": { + "16": [ + "(", + " way[building];", + " relation[building];", + ")" + ] + }, + "feature": { + "pre": [ + "{% if tags.height is defined %}", + "{% set approxHeight = tags.height %}", + "{% elseif attribute(tags, 'building:levels') is defined %}", + "{% set approxHeight = attribute(tags, 'building:levels') * 3.5 %}", + "{% endif %}", + "", + "{% if approxHeight <= 50 %}", + "{% set color = colorInterpolate(['green', 'red'], approxHeight / 50) %}", + "{% elseif approxHeight %}", + "{% set color = colorInterpolate(['red', 'yellow'], (approxHeight - 50) / 250) %} ", + "{% else %}", + "{% set color = '#7f7f7f' %}", + "{% endif %}" + ], + "description": [ + "{% if tags.height is defined %}", + "{{ tags.height }}m", + "{% endif %}", + "", + "{% if attribute(tags, 'building:levels') is defined %}", + "{{ attribute(tags, 'building:levels') }} {{ keyTrans('building:levels') }}", + "{% endif %}" + ], + "markerSymbol": null, + "listMarkerSymbol": "{{ markerPolygon({\"fillColor\": color, \"fillOpacity\": 0.8, \"width\": 1, \"color\": \"#000000\" })|raw }}", + "priority": "{{ (approxHeight|default(0)) * -1 }}", + "style": { + "width": "1", + "color": "#000000", + "fillColor": "{{ color }}", + "fillOpacity": "1" + } + }, + "info": [ + "
", + "{{ tagTrans('height') }}", + "", + " ", + " ", + " ", + " ", + "{% for i in range(0, 50, 10) %}", + " ", + " ", + " ", + " ", + "{% endfor %}", + "{% for i in range(100, 250, 50) %}", + " ", + " ", + " ", + " ", + "{% endfor %}", + " ", + " ", + " ", + " ", + "
{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}{{ trans('unknown') }}
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": i }))|raw }}{{ i }}m
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": i }))|raw }}{{ i }}m
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": \"300\" }))|raw }}≥300m
", + "
", + "", + "
", + "{{ tagTrans('building:levels') }}", + "", + " ", + " ", + " ", + " ", + "{% for i in range(0, 12, 3) %}", + " ", + " ", + " ", + " ", + "{% endfor %}", + "{% for i in range(15, 84, 15) %}", + " ", + " ", + " ", + " ", + "{% endfor %}", + " ", + " ", + " ", + " ", + "
{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}{{ trans('unknown') }}
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": i }))|raw }}{{ i }}
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": i }))|raw }}{{ i }}
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": \"85\" }))|raw }}≥85
", + "", + "
" + ] +} diff --git a/buildings-start_date.json b/buildings-start_date.json new file mode 100644 index 0000000..fadac20 --- /dev/null +++ b/buildings-start_date.json @@ -0,0 +1,120 @@ +{ + "type": "overpass", + "name": { + "en": "Building age", + "de": "Gebäudealter" + }, + "query": { + "16": [ + "(", + " way[building];", + " relation[building];", + ")" + ] + }, + "feature": { + "pre": [ + "{% if tags.start_date %}", + " {% set value = tags.start_date|osmParseDate %}", + " {% if value and value[0] and value[1] %}", + " {% set value = (value[1] - value[0]) / 2 + value[0] %}", + " {% elseif value and value[0] %}", + " {% set value = value[0] %}", + " {% elseif value and value[1] %}", + " {% set value = value[1] %}", + " {% else %}", + " {% set value = 'error' %}", + " {% endif %}", + "", + " {% if value == 'error' %}", + " {% set color = '#ff0000' %}", + " {% elseif value < 1500 %}", + " {% set color = '#0000ff' %}", + " {% elseif value < 1900 %}", + " {% set color = colorInterpolate([ '#0000ff', '#ff00ff' ], (value - 1500.0) / 400) %}", + " {% elseif value < 2000 %}", + " {% set color = colorInterpolate([ '#ff00ff', '#ffff00' ], (value - 1900.0) / 100) %}", + " {% else %}", + " {% set color = colorInterpolate([ '#ffff00', '#00ff00' ], (value - 2000.0) / 50) %}", + " {% endif %}", + "{% else %}", + "{% set color = '#7f7f7f' %}", + "{% endif %}" + ], + "description": [ + "{% if tags.start_date %}", + "{{ tags.start_date }}", + "{% endif %}" + ], + "markerSymbol": null, + "listMarkerSymbol": "{{ markerPolygon({ \"fillColor\": color, \"fillOpacity\": 0.8, \"width\": 1, \"color\": \"#000000\" })|raw }}", + "priority": [ + "{% set p = 100 %}", + "{% if tags.start_date %}{% set p = p - 20 %}{% endif %}", + "{% if tags.name %}{% set p = p - 10 %}{% endif %}", + "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", + "{% if tags.historic %}{% set p = p - 1 %}{% endif %}", + "{% if tags.culture %}{% set p = p - 1 %}{% endif %}", + "{% if tags.highway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.railway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.aeroway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", + "{% if tags.tourism %}{% set p = p - 1 %}{% endif %}", + "{{ p }}" + ], + "style": { + "width": "1", + "color": "#000000", + "fillColor": "{{ color }}", + "fillOpacity": "0.8" + } + }, + "info": [ + "", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1400\" }))|raw }}<1500
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1500\" }))|raw }}1500
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1600\" }))|raw }}1600
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1700\" }))|raw }}1700
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1800\" }))|raw }}1800
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1900\" }))|raw }}1900
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1950\" }))|raw }}1950
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"2000\" }))|raw }}2000
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"2020\" }))|raw }}2020
{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"xxx\" }))|raw }}unparseable start_date
{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}no start_date
" + ] +} diff --git a/buildings-type.json b/buildings-type.json new file mode 100644 index 0000000..09bb904 --- /dev/null +++ b/buildings-type.json @@ -0,0 +1,239 @@ +{ + "type": "overpass", + "name": { + "de": "Gebäudearten", + "en": "Building types" + }, + "query": { + "16": [ + "(", + " way[building][building!=no];", + " relation[building][building!=no];", + ")" + ] + }, + "feature": { + "pre": [ + "{% set type = tags.building|split(';')[0] %}", + "{% set color = const.other.color %}", + "{% for cat, data in const %}", + " {% if type in data.types %}", + " {% set color = data.color %}", + " {% endif %}", + "{% endfor %}" + ], + "description": [ + "{% if tags.building == 'yes' %}", + "{{ keyTrans('building') }}", + "{% else %}", + "{{ tagTransList('building', tags.building) }}", + "{% endif %}", + "{% if tags.building == 'construction' and tags.construction %}", + "({{ tagTransList('building', tags.construction) }})", + "{% endif %}" + ], + "markerSymbol": "", + "listMarkerSymbol": "{{ markerPolygon({\"fillColor\": color, \"fillOpacity\": 0.8, \"width\": 1, \"color\": \"#000000\" })|raw }}", + "priority": [ + "{% set p = 100 %}", + "{% if tags.name %}{% set p = p - 10 %}{% endif %}", + "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", + "{% if tags.historic %}{% set p = p - 1 %}{% endif %}", + "{% if tags.culture %}{% set p = p - 1 %}{% endif %}", + "{% if tags.highway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.railway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.aeroway %}{% set p = p - 1 %}{% endif %}", + "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", + "{% if tags.tourism %}{% set p = p - 1 %}{% endif %}", + "{{ p }}" + ], + "style": { + "width": "1", + "color": "#000000", + "fillColor": "{{ color }}", + "fillOpacity": "0.8" + } + }, + "info": [ + "", + "{% for cat, data in const %}", + " ", + " ", + " ", + " ", + "{% endfor %}", + "
{{ markerPolygon({ \"fillColor\": data.color, \"fillOpacity\": \"0.8\", \"width\": 1, \"color\": \"#000000\" })|raw }}{{ trans(data.name) }}:", + " {% for i, type in data.types %}{% if i > 0 %}, {% endif %}{{ tagTrans('building', type) }}{% endfor %}", + " ", + "", + "
" + ], + "const": { + "residential": { + "name": "tag:building=residential", + "color": "#25a000", + "types": [ + "house", + "apartments", + "block", + "flats", + "farm", + "detached", + "dormitory", + "terrace", + "houseboat", + "bungalow", + "static_caravan", + "residential", + "semidetached_house", + "ger", + "trullo" + ] + }, + "tourism": { + "name": "tag:tourism", + "color": "#814ce2", + "types": [ + "hotel", + "ruins", + "conservatory" + ] + }, + "commercial": { + "name": "tag:building=commercial", + "color": "#ec5bcf", + "types": [ + "commercial", + "office", + "industrial", + "retail", + "supermarket", + "warehouse", + "kiosk", + "mall", + "shop" + ] + }, + "religious": { + "name": "tag:building=religious", + "color": "#af29cc", + "types": [ + "religious", + "cathedral", + "chapel", + "church", + "mosque", + "temple", + "synagogue", + "shrine", + "monastery" + ] + }, + "amenity": { + "name": "tag:amenity", + "color": "#2935cc", + "types": [ + "kindergarten", + "civic", + "government", + "hospital", + "school", + "university", + "grandstand", + "public", + "toilets", + "college" + ] + }, + "agriculture": { + "name": "tag:landuse=agriculture", + "color": "#92e934", + "types": [ + "bakehouse", + "barn", + "cowshed", + "farm_auxiliary", + "greenhouse", + "stable", + "sty", + "kitchen", + "slurry_tank", + "silo" + ] + }, + "industrial": { + "name": "tag:landuse=industrial", + "color": "#e2da1b", + "types": [ + "construction", + "garbage_shed", + "transformer_tower", + "service", + "water_tower", + "industrial", + "warehouse", + "storage_tank" + ] + }, + "transportation": { + "name": "tag:building=transportation", + "color": "#1bb5e2", + "types": [ + "carport", + "garage", + "garages", + "bridge", + "hangar", + "parking", + "train_station", + "transportation" + ] + }, + "sport": { + "name": "tag:sport", + "color": "#e21b66", + "types": [ + "pavilion", + "riding_hall", + "stadium", + "sports_hall" + ] + }, + "roof": { + "name": "tag:building=roof", + "color": "#afafaf7f", + "types": [ + "roof" + ] + }, + "shelter": { + "name": "tag:amenity=shelter", + "color": "#cc8725", + "types": [ + "cabin", + "hut", + "shed" + ] + }, + "military": { + "name": "tag:military", + "color": "#4a7300", + "types": [ + "bunker" + ] + }, + "unspecified": { + "name": "tag:building=generic", + "color": "#7f7f7f", + "types": [ + "yes", + "generic" + ] + }, + "other": { + "name": "other", + "color": "#ff0000", + "types": [] + } + } +} diff --git a/buildings.json b/buildings.json index 5dacc6f..673cf29 100644 --- a/buildings.json +++ b/buildings.json @@ -1,5 +1,5 @@ { - "type": "overpass", + "type": "index", "name": { "de": "Gebäude", "en": "Buildings", @@ -8,33 +8,21 @@ "pt": "Edifícios", "pt-br": "Edificações" }, - "query": { - "16": [ - "(", - " way[building];", - " relation[building];", - ")" - ] - }, - "feature": { - "markerSymbol": null, - "priority": [ - "{% set p = 100 %}", - "{% if tags.name %}{% set p = p - 10 %}{% endif %}", - "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", - "{% if tags.historic %}{% set p = p - 1 %}{% endif %}", - "{% if tags.culture %}{% set p = p - 1 %}{% endif %}", - "{% if tags.highway %}{% set p = p - 1 %}{% endif %}", - "{% if tags.railway %}{% set p = p - 1 %}{% endif %}", - "{% if tags.aeroway %}{% set p = p - 1 %}{% endif %}", - "{% if tags.amenity %}{% set p = p - 1 %}{% endif %}", - "{% if tags.tourism %}{% set p = p - 1 %}{% endif %}", - "{{ p }}" - ], - "style": { - "width": "1", - "color": "#000000", - "fillColor": "#000000" + "subCategories": [ + { + "id": "buildings-type" + }, + { + "id": "buildings-figure-ground" + }, + { + "id": "buildings-height" + }, + { + "id": "buildings-start_date" + }, + { + "id": "buildings-entrances" } - } + ] } diff --git a/communication.json b/communication.json index 27f8372..83a90d3 100644 --- a/communication.json +++ b/communication.json @@ -25,21 +25,38 @@ "node[amenity~'^(post_office|internet_cafe)$'];", "way[amenity~'^(post_office|internet_cafe)$'];", "relation[amenity~'^(post_office|internet_cafe)$'];", + "nwr[office~\"^(telecommunication|it|newspaper|publisher|advertising_agency)$\"];", ");" ], "16": [ "(node[amenity~'^(post_office|internet_cafe|post_box|telephone)$'];", "way[amenity~'^(post_office|internet_cafe)$'];", "relation[amenity~'^(post_office|internet_cafe)$'];", + "nwr[office~\"^(telecommunication|it|newspaper|publisher|advertising_agency)$\"];", ");" ] }, "feature": { + "pre": [ + "{% if tags.amenity %}", + " {% set key = 'amenity' %}", + " {% set value = tags.amenity %}", + "{% else %}", + " {% set key = 'office' %}", + " {% set value = tags.office %}", + "{% endif %}" + ], "title": "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) |default(tagTrans('amenity', tags.amenity)) }}", - "description": "{{ tagTrans('amenity', tags.amenity) }}", + "description": [ + "{% if key == 'office' %}", + " {{ keyTrans('office') }} ({{ tagTrans('office', tags.office) }})", + "{% else %}", + " {{ tagTrans(key, value) }}", + "{% endif %}" + ], "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}
{% endif %}", "markerSign": [ - "{% set data = const[tags.amenity] %}", + "{% set data = const[key ~ '=' ~ value] %}", "{% if data %}", "{{ data.sign|raw }}", "{% endif %}" @@ -47,30 +64,69 @@ }, "info": [ "", - "{% for value, data in const %}", + "{% for kv, data in const %}", "{% if data.zoom <= map.zoom %}", " ", " ", - " ", + " ", " ", "{% endif %}", "{% endfor %}", "
{{ markerCircle({})|raw }}
{{ data.sign|raw }}
{{ tagTrans('amenity', value) }}", + " {% if kv|split('=')[0] == 'office' %}", + " {{ keyTrans('office') }}", + " ({{ tagTrans('office', kv|split('=')[1]) }})", + " {% else %}", + " {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}", + " {% endif %}", + "
" ], "const": { - "post_office": { + "amenity=post_office": { "sign": "", "zoom": 13 }, - "post_box": { + "amenity=post_box": { "sign": "", "zoom": 16 }, - "internet_cafe": { + "amenity=internet_cafe": { "sign": "", "zoom": 13 }, - "telephone": { + "office=telecommunication": { + "sign": "", + "zoom": 13 + }, + "office=it": { + "sign": "", + "zoom": 13 + }, + "office=newspaper": { + "sign": "", + "zoom": 13 + }, + "office=publisher": { + "sign": "", + "zoom": 13 + }, + "office=advertising_agency": { + "sign": "", + "zoom": 13 + }, + "office=public_relations": { + "sign": "", + "zoom": 13 + }, + "office=audiovisual_production": { + "sign": "", + "zoom": 13 + }, + "office=film_production": { + "sign": "", + "zoom": 13 + }, + "amenity=telephone": { "sign": "", "zoom": 16 } diff --git a/culture.json b/culture.json index 9fd02fc..630f375 100644 --- a/culture.json +++ b/culture.json @@ -30,6 +30,7 @@ "node[tourism~\"^(artwork|gallery|museum|theme_park)$\"];", "way[tourism~\"^(artwork|gallery|museum|theme_park)$\"];", "relation[tourism~\"^(artwork|gallery|museum|theme_park)$\"];", + "nwr[shop~\"^(art)$\"];", ")" ] }, @@ -41,28 +42,81 @@ "{% elseif tags.tourism %}", "{% set key = 'tourism' %}", "{% set value = tags.tourism %}", + "{% elseif tags.shop %}", + "{% set key = 'shop' %}", + "{% set value = tags.shop %}", "{% endif %}" ], - "description": "{{ tagTrans(key, value) }}", - "markerSign": "{{ attribute(const, key ~ '=' ~ value) }}" + "description": [ + "{% if key == 'shop' %}", + " {{ keyTrans(key) }} ({{ tagTrans(key, value) }})", + "{% else %}", + " {{ tagTrans(key, value) }}", + "{% endif %}", + "", + "{% if tags.tourism == 'museum' and tags.museum %}", + "({{ tagTrans('museum', tags.museum) }})", + "{% endif %}", + "{% if tags.amenity == 'theatre' and attribute(tags, 'theatre:genre') %}", + "({{ tagTrans('theatre:genre', attribute(tags, 'theatre:genre')) }})", + "{% endif %}", + "{% if tags.amenity == 'community_centre' and tags.community_centre %}", + "({{ tagTrans('community_centre', tags.community_centre) }})", + "{% endif %}" + ], + "body": [ + "" + ], + "markerSign": "{{ attribute(const, key ~ '=' ~ value)|raw }}" }, "const": { "amenity=arts_centre": "🎨", "amenity=cinema": "🎦", - "amenity=community_centre": "", + "amenity=community_centre": "", "amenity=fountain": "⛲", - "amenity=studio": "", + "amenity=studio": "", "amenity=theatre": "🎭", "tourism=artwork": "🎨 ", "tourism=gallery": "🖼", "tourism=museum": "🏛 ", - "tourism=theme_park": "" + "tourism=theme_park": "", + "shop=art": "" }, "info": [ "", "{% for value, sign in const %}", " ", - " ", + " ", " ", " ", "{% endfor %}", diff --git a/cycle_routes.json b/cycle_routes.json index 828dfaf..2cb57ed 100644 --- a/cycle_routes.json +++ b/cycle_routes.json @@ -16,18 +16,18 @@ }, "members": true, "feature": { - "priority": "{{ const[tags.network].priority|default(4) }}", + "title": "{% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% else %}{{ trans('unnamed') }}{% endif %}", "description": "{{ tagTrans('network', tags.network) }}", + "markerSymbol": "", "listMarkerSymbol": "{{ markerLine({ 'width': 4, 'color': const[tags.network].color|default(const[''].color) })|raw }}", - "title": "{% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% else %}{{ trans('unnamed') }}{% endif %}", + "priority": "{{ const[tags.network].priority|default(4) }}", "styles": "", "style:hover": { - "width": 0 + "width": "0" }, "style:selected": { - "width": 0 - }, - "markerSymbol": "" + "width": "0" + } }, "memberFeature": { "pre": [ @@ -72,62 +72,62 @@ "listExclude": "1", "styles": "default{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}", "style": { - "color": "{{ const[network].color }}", "width": "4", + "color": "{{ const[network].color }}", + "opacity": "1", + "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}", "dashArray": "{% if not dirForward or not dirBackward %}27,8{% endif %}", "dashOffset": "{% if dirBackward %}28{% else %}0{% endif %}", - "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}", "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}", - "opacity": 1, "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", - "textFontWeight": "bold", "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}", - "pattern-pixelSize": "9", - "pattern-repeat": "35", "pattern-offset": "{% if dirBackward %}4{% else %}30.5{% endif %}", + "pattern-repeat": "35", "pattern-polygon": "true", + "pattern-pixelSize": "9", "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}", "pattern-path-width": "0", + "pattern-path-color": "{{ const[network].color }}", "pattern-path-fillOpacity": "1", - "pattern-path-color": "{{ const[network].color }}" + "textFontWeight": "bold" }, "style:hover": { "pane": "hover", "width": "4", + "color": "black", + "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}", "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}", "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}", - "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}", "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}", - "color": "black", "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}", - "pattern-pixelSize": "9", - "pattern-repeat": "35", "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}", + "pattern-repeat": "35", "pattern-polygon": "true", + "pattern-pixelSize": "9", "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}", "pattern-path-width": "0", - "pattern-path-fillOpacity": "1", - "pattern-path-color": "black" + "pattern-path-color": "black", + "pattern-path-fillOpacity": "1" }, "style:selected": { "pane": "selected", "width": "4", + "color": "#3f3f3f", + "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}", "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}", "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}", - "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}", "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}", - "color": "#3f3f3f", "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}", - "pattern-pixelSize": "9", - "pattern-repeat": "35", "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}", + "pattern-repeat": "35", "pattern-polygon": "true", + "pattern-pixelSize": "9", "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}", "pattern-path-width": "0", - "pattern-path-fillOpacity": "1", - "pattern-path-color": "#3f3f3f" + "pattern-path-color": "#3f3f3f", + "pattern-path-fillOpacity": "1" } }, "const": { diff --git a/detailsBody.html b/detailsBody.html index 6b8d180..3c5a746 100644 --- a/detailsBody.html +++ b/detailsBody.html @@ -1,4 +1,12 @@ diff --git a/education.json b/education.json index c366e82..5b4772d 100644 --- a/education.json +++ b/education.json @@ -32,6 +32,7 @@ "node[amenity~'^(college|university|library|school|kindergarten|language_school)$'];", "way[amenity~'^(college|university|library|school|kindergarten|language_school)$'];", "relation[amenity~'^(college|university|library|school|kindergarten|language_school)$'];", + "nwr[office~\"^(educational_institution|research)$\"];", ")" ], "16": [ @@ -39,20 +40,30 @@ "node[amenity~'^(college|university|library|school|kindergarten|public_bookcase)$'];", "way[amenity~'^(college|university|library|school|kindergarten|public_bookcase)$'];", "relation[amenity~'^(college|university|library|school|kindergarten|public_bookcase)$'];", + "nwr[office~\"^(educational_institution|research)$\"];", ")" ] }, "feature": { - "description": "{{ tagTrans('amenity', tags.amenity) }}", + "pre": [ + "{% if tags.office == 'educational_institution' or tags.office == 'research' %}", + " {% set key = 'office' %}", + " {% set value = tags.office %}", + "{% else %}", + " {% set key = 'amenity' %}", + " {% set value = tags.amenity %}", + "{% endif %}" + ], + "description": "{{ tagTrans(key, value) }}", "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ tags.operator }}
{% endif %}", "markerSign": [ - "{% set data = const[tags.amenity] %}", + "{% set data = const[key ~ '=' ~ value] %}", "{% if data %}", - "{{ data.sign }}", + "{{ data.sign|raw }}", "{% endif %}" ], "priority": [ - "{% set data = const[tags.amenity] %}", + "{% set data = const[key ~ '=' ~ value] %}", "{% if data %}", "{{ data.priority }}", "{% endif %}" @@ -60,51 +71,63 @@ }, "info": [ "
{{ markerCircle({})|raw }}
{{ sign }}
{{ markerCircle({})|raw }}
{{ sign|raw }}
{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}
", - "{% for value, data in const %}", + "{% for kv, data in const %}", "{% if data.zoom <= map.zoom %}", " ", - " ", - " ", + " ", + " ", " ", "{% endif %}", "{% endfor %}", "
{{ markerCircle({})|raw }}
{{ data.sign }}
{{ tagTrans('amenity', value) }}{{ markerCircle({})|raw }}
{{ data.sign|raw }}
", + " {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}", + "
" ], "const": { - "university": { + "amenity=university": { "priority": 0, "sign": "🎓", "zoom": 11 }, - "college": { + "amenity=college": { "priority": 1, "sign": "🎓", "zoom": 11 }, - "library": { + "amenity=library": { "priority": 2, "sign": "🕮", "zoom": 11 }, - "school": { + "amenity=school": { "priority": 3, "sign": "🏫", "zoom": 14 }, - "language_school": { + "amenity=language_school": { "priority": 3, "sign": "🏫", "zoom": 14 }, - "kindergarten": { + "amenity=kindergarten": { "priority": 4, "sign": "⛹", "zoom": 14 }, - "public_bookcase": { + "amenity=public_bookcase": { "priority": 5, "sign": "📚", "zoom": 16 + }, + "office=educational_institution": { + "priority": 3, + "sign": "🏢", + "zoom": 14 + }, + "office=research": { + "priority": 3, + "sign": "", + "zoom": 14 } } } diff --git a/financial.json b/financial.json index b0ea37a..82b3bfb 100644 --- a/financial.json +++ b/financial.json @@ -31,37 +31,75 @@ "node[amenity~\"^(bank|bureau_de_change|atm)$\"];", "way[amenity~\"^(bank|bureau_de_change|atm)$\"];", "relation[amenity~\"^(bank|bureau_de_change|atm)$\"];", + "node[office~\"^(financial|accountant|insurance|tax|tax_advisor)$\"];", + "way[office~\"^(financial|accountant|insurance|tax|tax_advisor)$\"];", + "relation[office~\"^(financial|accountant|insurance|tax|tax_advisor)$\"];", ")" ] }, "feature": { - "description": "{{ tagTrans('amenity', tags.amenity) }}", - "markerSign": "{{ const[tags.amenity].sign|raw }}" + "pre": [ + "{% if tags.amenity %}", + " {% set key = 'amenity' %}", + " {% set value = tags.amenity %}", + "{% else %}", + " {% set key = 'office' %}", + " {% set value = tags.office %}", + "{% endif %}" + ], + "description": "{{ tagTrans(key, value) }}", + "markerSign": "{{ const[key ~ '=' ~ value].sign|raw }}" }, "info": [ "", - "{% for value, data in const %}", + "{% for kv, data in const %}", "{% if data.zoom <= map.zoom %}", " ", " ", - " ", + " ", " ", "{% endif %}", "{% endfor %}", "
{{ markerCircle({})|raw }}
{{ data.sign|raw }}
{{ tagTrans('amenity', value) }}", + " {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}", + "
" ], "const": { - "atm": { - "sign": "", + "amenity=atm": { + "sign": "", "zoom": 15 }, - "bank": { - "sign": "", + "amenity=bank": { + "sign": "", "zoom": 14 }, - "bureau_de_change": { + "amenity=bureau_de_change": { "sign": "⇄", "zoom": 15 + }, + "office=financial": { + "sign": "", + "zoom": 15 + }, + "office=accountant": { + "sign": "", + "zoom": 15 + }, + "office=insurance": { + "sign": "", + "zoom": 15 + }, + "office=tax": { + "sign": "%", + "zoom": 15 + }, + "office=tax_advisor": { + "sign": "%", + "zoom": 15 + }, + "office=cooperative": { + "sign": "", + "zoom": 15 } } } diff --git a/historic.json b/historic.json index f09cf10..0042fc1 100644 --- a/historic.json +++ b/historic.json @@ -37,6 +37,37 @@ }, "feature": { "description": "{{ tagTransList('historic', tags.historic) }}", + "body": [ + "" ], + "markerSign": " ", + "markerSymbol": "{% if isStop and stopCount > 0 %}{% if hover or selected %}{{ markerPointer({ })|raw }}{% endif %}{% endif %}", "styles": "{% if isStop and stopCount > 0 %}stop{% elseif isWay %}casing,way{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}{% endif %}", + "style:hover": { + "pane": "hover", + "width": "4", + "color": "black", + "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}", + "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}", + "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}", + "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}", + "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}", + "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}", + "pattern-repeat": "35", + "pattern-polygon": "true", + "pattern-pixelSize": "9", + "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}", + "pattern-path-width": "0", + "pattern-path-color": "black", + "pattern-path-fillOpacity": "1" + }, + "style:selected": { + "pane": "selected", + "width": "4", + "color": "#3f3f3f", + "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}", + "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}", + "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}", + "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}", + "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}", + "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}", + "pattern-repeat": "35", + "pattern-polygon": "true", + "pattern-pixelSize": "9", + "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}", + "pattern-path-width": "0", + "pattern-path-color": "#3f3f3f", + "pattern-path-fillOpacity": "1" + }, "listStopsMarkerSign": null, "listStopsMarkerSymbol": "{{ markerCircle({ width: 5, color: color, fillOpacity: '1', radius: 3 })|raw }}", "listStopsExclude": "{{ not isStop or stopCount == 0 }}", "listStopsTitle": "{% if tags %}{{ tags.name|default(stopName)|default(trans('unknown')) }}{% else %}
  • {{ trans('loading') }}
  • {% endif %}", "listStopsDescription": "{{ refs|join(' · ') }}", "listRoutesExclude": "true", - "markerSymbol": "{% if isStop and stopCount > 0 %}{% if hover or selected %}{{ markerPointer({ })|raw }}{% endif %}{% endif %}", - "markerSign": " ", "style:stop": { - "color": "{{ color|default('#ff0000') }}", "width": "4", + "color": "{{ color|default('#ff0000') }}", "radius": "3", "zIndex": "1" }, "style:way": { - "color": "{{ color|default('#ff0000') }}", "width": "4", + "color": "{{ color|default('#ff0000') }}", + "opacity": "1", + "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}", "dashArray": "{% if not dirForward or not dirBackward %}27,8{% endif %}", "dashOffset": "{% if dirBackward %}28{% else %}0{% endif %}", - "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}", "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}", - "opacity": 1, "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", - "textFontWeight": "bold", "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}", - "pattern-pixelSize": "9", - "pattern-repeat": "35", "pattern-offset": "{% if dirBackward %}4{% else %}30.5{% endif %}", - "pattern-polygon": "true", - "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}", - "pattern-path-width": "0", - "pattern-path-fillOpacity": "1", - "pattern-path-color": "{{ color|default('#ff0000') }}" - }, - "style:hover": { - "pane": "hover", - "width": "4", - "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}", - "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}", - "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}", - "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}", - "color": "black", - "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}", - "pattern-pixelSize": "9", "pattern-repeat": "35", - "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}", "pattern-polygon": "true", - "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}", - "pattern-path-width": "0", - "pattern-path-fillOpacity": "1", - "pattern-path-color": "black" - }, - "style:selected": { - "pane": "selected", - "width": "4", - "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}", - "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}", - "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}", - "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}", - "color": "#3f3f3f", - "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}", "pattern-pixelSize": "9", - "pattern-repeat": "35", - "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}", - "pattern-polygon": "true", - "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}", + "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}", "pattern-path-width": "0", + "pattern-path-color": "{{ color|default('#ff0000') }}", "pattern-path-fillOpacity": "1", - "pattern-path-color": "#3f3f3f" + "textFontWeight": "bold" } }, "info": [ diff --git a/public.json b/public.json index 4fad62c..3adc7ff 100644 --- a/public.json +++ b/public.json @@ -21,37 +21,51 @@ "query": { "12": [ "(", - "node[amenity~'^(courthouse|embassy|public_building|townhall)$'];", - "way[amenity~'^(courthouse|embassy|public_building|townhall)$'];", - "relation[amenity~'^(courthouse|embassy|public_building|townhall)$'];", + "node[amenity~'^(embassy|public_building|townhall)$'];", + "way[amenity~'^(embassy|public_building|townhall)$'];", + "relation[amenity~'^(embassy|public_building|townhall)$'];", "node[amenity=recycling][recyling_type=centre];", "way[amenity=recycling][recyling_type=centre];", "relation[amenity=recycling][recyling_type=centre];", + "nwr[office~\"^(government|administration)$\"];", ");" ], "16": [ "(", - "node[amenity~'^(courthouse|embassy|public_building|townhall|clock|drinking_water|recycling|toilets)$'];", - "way[amenity~'^(courthouse|embassy|public_building|townhall|recycling|toilets)$'];", - "relation[amenity~'^(courthouse|embassy|public_building|townhall|recycling|toilets)$'];", + "node[amenity~'^(embassy|public_building|townhall|clock|drinking_water|recycling|toilets)$'];", + "way[amenity~'^(embassy|public_building|townhall|recycling|toilets)$'];", + "relation[amenity~'^(embassy|public_building|townhall|recycling|toilets)$'];", "node[drinking_water];", + "nwr[office~\"^(government|administration)$\"];", ");" ] }, "feature": { "pre": [ "{% if tags.drinking_water %}", + "{% set key = 'amenity' %}", "{% set value = 'drinking_water' %}", - "{% else %}", + "{% elseif tags.amenity %}", + "{% set key = 'amenity' %}", "{% set value = tags.amenity %}", + "{% elseif tags.office %}", + "{% set key = 'office' %}", + "{% set value = tags.office %}", "{% endif %}" ], "title": "{{ tags.name|default(tags.operator)|default(tagTrans('amenity', value)) }}", - "description": "{{ tagTrans('amenity', value) }}", + "description": [ + "{% if key == 'office' %}", + " {{ keyTrans('office') }} ({{ tagTrans('office', tags.office) }})", + "{% else %}", + " {{ tagTrans(key, value) }}", + "{% endif %}" + ], "body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ tags.operator }}
    {% endif %}", "markerSign": [ - "{% if const[value] %}", - "{{ const[value]|raw }}", + "{% set kv = key ~ '=' ~ value %}", + "{% if const[kv] %}", + "{{ const[kv]|raw }}", "{% endif %}" ] }, @@ -66,13 +80,14 @@ "" ], "const": { - "courthouse": "⚖", - "clock": "", - "drinking_water": "", - "embassy": "", - "public_building": "", - "recycling": "", - "toilets": "", - "townhall": "" + "amenity=clock": "", + "amenity=drinking_water": "", + "amenity=embassy": "", + "amenity=public_building": "", + "amenity=recycling": "", + "amenity=toilets": "", + "amenity=townhall": "", + "office=administration": "", + "office=government": "" } } diff --git a/religion.json b/religion.json index ebdc2b6..b3e2c5a 100644 --- a/religion.json +++ b/religion.json @@ -38,6 +38,7 @@ "node[historic~\"^wayside_(cross|shrine|chapel)$\"];", "way[historic~\"^wayside_(cross|shrine|chapel)$\"];", "relation[historic~\"^wayside_(cross|shrine|chapel)$\"];", + "nwr[office~\"^(parish|religion)$\"];", ")" ] }, @@ -49,6 +50,9 @@ "{% elseif tags.historic in [ 'wayside_cross', 'wayside_shrine', 'wayside_chapel' ] %}", "{% set key = 'historic' %}", "{% set value = tags.historic %}", + "{% elseif tags.office %}", + "{% set key = 'office' %}", + "{% set value = tags.office %}", "{% else %}", "{% set key = 'amenity' %}", "{% set value = tags.amenity %}", diff --git a/tourism_attractions.json b/tourism_attractions.json index 7fdfea7..d69b2b4 100644 --- a/tourism_attractions.json +++ b/tourism_attractions.json @@ -49,12 +49,12 @@ "const": { "aquarium": "🐟", "artwork": "🎨 ", - "attraction": "", + "attraction": "", "gallery": "🖼", - "museum": "", - "picnic_site": "", - "theme_park": "", - "viewpoint": "", + "museum": "", + "picnic_site": "", + "theme_park": "", + "viewpoint": "", "zoo": "🦁" } } diff --git a/tourism_services.json b/tourism_services.json index d48a470..0247ae3 100644 --- a/tourism_services.json +++ b/tourism_services.json @@ -25,6 +25,7 @@ "node[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|motel|wilderness_hut)$\"];", "way[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|motel|wilderness_hut)$\"];", "relation[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|motel|wilderness_hut)$\"];", + "nwr[office~\"^(guide|tourism|tourist_accommodation)$\"];", ")" ], "16": [ @@ -32,67 +33,107 @@ "node[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];", "way[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];", "relation[tourism~\"^(alpine_hut|apartment|camp_site|caravan_site|chalet|guest_house|hostel|hotel|information|motel|wilderness_hut)$\"];", + "nwr[office~\"^(guide|tourism|tourist_accommodation)$\"];", ")" ] }, "feature": { - "description": "{{ tagTrans('tourism', tags.tourism) }}", - "markerSign": "{{ const[tags.tourism].sign|raw }}" + "pre": [ + "{% if tags.tourism %}", + " {% set key = 'tourism' %}", + " {% set value = tags.tourism %}", + "{% else %}", + " {% set key = 'office' %}", + " {% set value = tags.office %}", + "{% endif %}" + ], + "description": [ + "{% if key == 'office' %}", + " {{ keyTrans('office') }} ({{ tagTrans('office', tags.office) }})", + "{% else %}", + " {{ tagTrans(key, value) }}", + "{% endif %}" + ], + "markerSign": [ + "{% set data = const[key ~ '=' ~ value] %}", + "{% if data %}", + "{{ data.sign|raw }}", + "{% endif %}" + ] }, "info": [ "", - "{% for value, data in const %}", + "{% for kv, data in const %}", "{% if data.zoom <= map.zoom %}", " ", " ", - " ", + " ", " ", "{% endif %}", "{% endfor %}", "
    {{ markerCircle({})|raw }}
    {{ data.sign|raw }}
    {{ tagTrans('tourism', value) }}", + " {% if kv|split('=')[0] == 'office' %}", + " {{ keyTrans('office') }}", + " ({{ tagTrans('office', kv|split('=')[1]) }})", + " {% else %}", + " {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}", + " {% endif %}", + "
    " ], "const": { - "alpine_hut": { + "tourism=alpine_hut": { "sign": "🛌", "zoom": 13 }, - "apartment": { + "tourism=apartment": { "sign": "🛌", "zoom": 13 }, - "camp_site": { + "tourism=camp_site": { "sign": "⛺", "zoom": 13 }, - "caravan_site": { + "tourism=caravan_site": { "sign": "⛺", "zoom": 13 }, - "chalet": { + "tourism=chalet": { "sign": "🛌", "zoom": 13 }, - "guest_house": { + "tourism=guest_house": { "sign": "🛌", "zoom": 13 }, - "hostel": { + "tourism=hostel": { "sign": "🛌", "zoom": 13 }, - "hotel": { + "tourism=hotel": { "sign": "🛌", "zoom": 13 }, - "motel": { + "tourism=motel": { "sign": "🛌", "zoom": 13 }, - "wilderness_hut": { + "tourism=wilderness_hut": { "sign": "", "zoom": 13 }, - "information": { + "office=tourism": { + "sign": "", + "zoom": 13 + }, + "office=guide": { + "sign": "", + "zoom": 13 + }, + "office=tourist_accommodation": { + "sign": "🛌", + "zoom": 13 + }, + "tourism=information": { "sign": "ℹ️", "zoom": 16 }