Browse Source

Merge pull request #10 from plepe/master

Sync
climbing
Igor Eliezer 4 years ago
committed by GitHub
parent
commit
07b5177cdf
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 25
      buildings-entrances.json
  2. 38
      buildings-figure-ground.json
  3. 104
      buildings-height.json
  4. 120
      buildings-start_date.json
  5. 239
      buildings-type.json
  6. 46
      buildings.json
  7. 72
      communication.json
  8. 66
      culture.json
  9. 50
      cycle_routes.json
  10. 24
      detailsBody.html
  11. 51
      education.json
  12. 56
      financial.json
  13. 47
      historic.json
  14. 6
      index.json
  15. 59
      law.json
  16. 42
      memorial.json
  17. 80
      organisations.json
  18. 24
      popupBody.html
  19. 94
      pt.json
  20. 51
      public.json
  21. 4
      religion.json
  22. 10
      tourism_attractions.json
  23. 71
      tourism_services.json

25
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": ""
}
}

38
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"
}
}
}

104
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": [
"<div style='display: inline-block'>",
"{{ tagTrans('height') }}",
"<table>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}</td>",
" <td colspan>{{ trans('unknown') }}</td>",
" </tr>",
"{% for i in range(0, 50, 10) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": i }))|raw }}</td>",
" <td>{{ i }}m</td>",
" </tr>",
"{% endfor %}",
"{% for i in range(100, 250, 50) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": i }))|raw }}</td>",
" <td>{{ i }}m</td>",
" </tr>",
"{% endfor %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": \"300\" }))|raw }}</td>",
" <td>≥300m</td>",
" </tr>",
"</table>",
"</div>",
"",
"<div style='display: inline-block'>",
"{{ tagTrans('building:levels') }}",
"<table>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}</td>",
" <td colspan>{{ trans('unknown') }}</td>",
" </tr>",
"{% for i in range(0, 12, 3) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": i }))|raw }}</td>",
" <td>{{ i }}</td>",
" </tr>",
"{% endfor %}",
"{% for i in range(15, 84, 15) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": i }))|raw }}</td>",
" <td>{{ i }}</td>",
" </tr>",
"{% endfor %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": \"85\" }))|raw }}</td>",
" <td>≥85</td>",
" </tr>",
"</table>",
"",
"</div>"
]
}

120
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": [
"<table>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1400\" }))|raw }}</td>",
" <td>&lt;1500</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1500\" }))|raw }}</td>",
" <td>1500</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1600\" }))|raw }}</td>",
" <td>1600</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1700\" }))|raw }}</td>",
" <td>1700</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1800\" }))|raw }}</td>",
" <td>1800</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1900\" }))|raw }}</td>",
" <td>1900</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"1950\" }))|raw }}</td>",
" <td>1950</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"2000\" }))|raw }}</td>",
" <td>2000</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"2020\" }))|raw }}</td>",
" <td>2020</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"start_date\": \"xxx\" }))|raw }}</td>",
" <td>unparseable start_date</td>",
" </tr>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}</td>",
" <td>no start_date</td>",
" </tr>",
"</table>"
]
}

239
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": [
"<table>",
"{% for cat, data in const %}",
" <tr>",
" <td valign='top'>{{ markerPolygon({ \"fillColor\": data.color, \"fillOpacity\": \"0.8\", \"width\": 1, \"color\": \"#000000\" })|raw }}</td>",
" <td onclick='this.classList.toggle(\"infoShowDetails\")'><b>{{ trans(data.name) }}</b><span class='details'>:",
" {% for i, type in data.types %}<span title='building={{ type }}'>{% if i > 0 %}, {% endif %}{{ tagTrans('building', type) }}</span>{% endfor %}",
" </span>",
"<span class='summary'><i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i></span>",
" </td>",
" </tr>",
"{% endfor %}",
"</table>"
],
"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": []
}
}
}

46
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"
}
}
]
}

72
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') }}<br/>{% endif %}",
"markerSign": [
"{% set data = const[tags.amenity] %}",
"{% set data = const[key ~ '=' ~ value] %}",
"{% if data %}",
"{{ data.sign|raw }}",
"{% endif %}"
@ -47,30 +64,69 @@
},
"info": [
"<table>",
"{% for value, data in const %}",
"{% for kv, data in const %}",
"{% if data.zoom <= map.zoom %}",
" <tr>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
" <td>{{ tagTrans('amenity', value) }}</td>",
" <td>",
" {% if kv|split('=')[0] == 'office' %}",
" {{ keyTrans('office') }}",
" ({{ tagTrans('office', kv|split('=')[1]) }})",
" {% else %}",
" {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
" {% endif %}",
" </td>",
" </tr>",
"{% endif %}",
"{% endfor %}",
"</table>"
],
"const": {
"post_office": {
"amenity=post_office": {
"sign": "<img src='maki:post?size=15'>",
"zoom": 13
},
"post_box": {
"amenity=post_box": {
"sign": "<img src='maki:post?size=11'>",
"zoom": 16
},
"internet_cafe": {
"amenity=internet_cafe": {
"sign": "<i class='fa fa-laptop' aria-hidden='true'></i>",
"zoom": 13
},
"telephone": {
"office=telecommunication": {
"sign": "<i class='fas fa-mobile-alt'></i>",
"zoom": 13
},
"office=it": {
"sign": "<i class='fas fa-desktop'></i>",
"zoom": 13
},
"office=newspaper": {
"sign": "<i class='fas fa-newspaper'></i>",
"zoom": 13
},
"office=publisher": {
"sign": "<i class='fas fa-book'></i>",
"zoom": 13
},
"office=advertising_agency": {
"sign": "<i class='fas fa-sign'></i>",
"zoom": 13
},
"office=public_relations": {
"sign": "<i class='fas fa-sign'></i>",
"zoom": 13
},
"office=audiovisual_production": {
"sign": "<i class='fas fa-film'></i>",
"zoom": 13
},
"office=film_production": {
"sign": "<i class='fas fa-film'></i>",
"zoom": 13
},
"amenity=telephone": {
"sign": "<img src='maki:telephone'>",
"zoom": 16
}

66
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": [
"<ul>",
"{% if tags.inscription %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-pencil-alt\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('inscription') }}:</span>",
" <span class='value'>{{ localizedTag(tags, 'inscription') }}</span>",
" </li>",
"{% elseif attribute(tags, 'inscription:url') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-pencil-alt\" aria-hidden=\"true\"></i>",
" <span class='key'><a href=\"{{ attribute(tags, 'inscription:url') }}\">{{ keyTrans('inscription') }}</a></span>",
" </li>",
"{% endif %}",
"",
"{% if tags.artist_name %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-palette\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('artist_name') }}:</span>",
" <span class='value'>{{ enumerate(tags.artist_name) }}</span>",
" </li>",
"{% endif %}",
"",
"{% if tags.material %}",
" <li class='hasSymbol'>",
" <img data-src=\"maki:warehouse\">",
" <span class='key'>{{ keyTrans('material') }}:</span>",
" <span class='value'>{{ tagTransList('material', tags.material) }}</span>",
" </li>",
"{% endif %}",
"",
"</ul>"
],
"markerSign": "{{ attribute(const, key ~ '=' ~ value)|raw }}"
},
"const": {
"amenity=arts_centre": "🎨",
"amenity=cinema": "🎦",
"amenity=community_centre": "",
"amenity=community_centre": "<i class=\"fas fa-users\" aria-hidden=\"true\"></i>",
"amenity=fountain": "⛲",
"amenity=studio": "",
"amenity=studio": "<i class=\"fas fa-microphone\"></i>",
"amenity=theatre": "🎭",
"tourism=artwork": "🎨 ",
"tourism=gallery": "🖼",
"tourism=museum": "🏛 ",
"tourism=theme_park": ""
"tourism=theme_park": "<img data-src='maki:amusement-park'>",
"shop=art": "<i class=\"fa fa-shopping-cart\"></i>"
},
"info": [
"<table>",
"{% for value, sign in const %}",
" <tr>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ sign }}</div></td>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ sign|raw }}</div></td>",
" <td>{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}</td>",
" </tr>",
"{% endfor %}",

50
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": {

24
detailsBody.html

@ -1,4 +1,12 @@
<ul>
{% set hasDescription = tagsPrefix(tags, 'description:') %}
{% if tags.description or hasDescription %}
<li class='hasSymbol'>
<i class="fa fa-info" aria-hidden="true"></i>
<span class='value'>{{ localizedTag(tags, 'description')|default(attribute(tags, 'description:' ~ hasDescription|keys[0])) }}</span>
</li>
{% endif %}
{% set address = tagsPrefix(tags, 'addr:') %}
{% if address %}
<li class='hasSymbol'>
@ -133,4 +141,20 @@
</li>
{% endif %}
{% if tags.start_date %}
<li class='hasSymbol'>
<i class="fa fa-clock-o" aria-hidden="true"></i>
<span class='key'>{{ keyTrans('start_date') }}:</span>
<span class='value'>{{ enumerate(tags.start_date) }}</span>
</li>
{% endif %}
{% if tags.opening_date %}
<li class='hasSymbol'>
<i class="fa fa-clock-o" aria-hidden="true"></i>
<span class='key'>{{ keyTrans('opening_date') }}:</span>
<span class='value'>{{ enumerate(tags.opening_date) }}</span>
</li>
{% endif %}
</ul>

51
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 }}<br/>{% 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": [
"<table>",
"{% for value, data in const %}",
"{% for kv, data in const %}",
"{% if data.zoom <= map.zoom %}",
" <tr>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign }}</div></td>",
" <td>{{ tagTrans('amenity', value) }}</td>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
" <td>",
" {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
" </td>",
" </tr>",
"{% endif %}",
"{% endfor %}",
"</table>"
],
"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": "<i class='fas fa-vials'></i>",
"zoom": 14
}
}
}

56
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": [
"<table>",
"{% for value, data in const %}",
"{% for kv, data in const %}",
"{% if data.zoom <= map.zoom %}",
" <tr>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
" <td>{{ tagTrans('amenity', value) }}</td>",
" <td>",
" {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
" </td>",
" </tr>",
"{% endif %}",
"{% endfor %}",
"</table>"
],
"const": {
"atm": {
"sign": "<img src='maki:bank?size=11'>",
"amenity=atm": {
"sign": "<img data-src='maki:bank?size=11'>",
"zoom": 15
},
"bank": {
"sign": "<img src='maki:building'>",
"amenity=bank": {
"sign": "<img data-src='maki:building'>",
"zoom": 14
},
"bureau_de_change": {
"amenity=bureau_de_change": {
"sign": "⇄",
"zoom": 15
},
"office=financial": {
"sign": "<i class=\"fas fa-coins\"></i>",
"zoom": 15
},
"office=accountant": {
"sign": "<i class=\"fas fa-book\"></i>",
"zoom": 15
},
"office=insurance": {
"sign": "<i class=\"fas fa-file-signature\"></i>",
"zoom": 15
},
"office=tax": {
"sign": "%",
"zoom": 15
},
"office=tax_advisor": {
"sign": "<span style='color: green'>%</span>",
"zoom": 15
},
"office=cooperative": {
"sign": "<i class=\"fas fa-piggy-bank\"></i>",
"zoom": 15
}
}
}

47
historic.json

@ -37,6 +37,37 @@
},
"feature": {
"description": "{{ tagTransList('historic', tags.historic) }}",
"body": [
"<ul>",
"{% if tags.inscription %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-pencil-alt\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('inscription') }}:</span>",
" <span class='value'>{{ localizedTag(tags, 'inscription') }}</span>",
" </li>",
"{% elseif attribute(tags, 'inscription:url') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-pencil-alt\" aria-hidden=\"true\"></i>",
" <span class='key'><a href=\"{{ attribute(tags, 'inscription:url') }}\">{{ keyTrans('inscription') }}</a></span>",
" </li>",
"{% endif %}",
"",
"{% if attribute(tags, 'historic:civilization') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-users\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('historic:civilization') }}:</span>",
" <span class='value'>{{ tagTrans('historic:civilization', attribute(tags, 'historic:civilization')) }}</span>",
" </li>",
"{% endif %}",
"",
"{% if attribute(tags, 'memorial:conflict') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-bolt\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('memorial:conflict') }}:</span>",
" <span class='value'>{{ tagTransList('memorial:conflict', attribute(tags, 'memorial:conflict')) }}</span>",
" </li>",
"{% endif %}"
],
"markerSign": "{{ const[tags.historic].sign|raw }}"
},
"info": [
@ -59,19 +90,27 @@
],
"const": {
"archaeological_site": {
"sign": "",
"sign": "<i class=\"fas fa-archway\"></i>",
"zoom": 11
},
"battlefield": {
"sign": "",
"sign": "⚔️",
"zoom": 11
},
"castle": {
"sign": "<img src='maki:castle'>",
"sign": "<img data-src='maki:castle'>",
"zoom": 11
},
"building": {
"sign": "<img data-src='maki:building'>",
"zoom": 14
},
"aircraft": {
"sign": "<img src='maki:airport'>",
"sign": "<img data-src='maki:airport'>",
"zoom": 14
},
"ruins": {
"sign": "<img data-src='temaki:ruins'>",
"zoom": 14
}
}

6
index.json

@ -95,11 +95,17 @@
{
"id": "financial"
},
{
"id": "law"
},
{
"id": "public"
},
{
"id": "tourism_services"
},
{
"id": "organisations"
}
]
},

59
law.json

@ -0,0 +1,59 @@
{
"type": "overpass",
"name": {
"en": "Law"
},
"query": {
"14": [
"(",
"node[amenity~\"^(courthouse)$\"];",
"way[amenity~\"^(courthouse)$\"];",
"relation[amenity~\"^(courthouse)$\"];",
"node[office~\"^(lawyer|notary)$\"];",
"way[office~\"^(lawyer|notary)$\"];",
"relation[office~\"^(lawyer|notary)$\"];",
")"
]
},
"feature": {
"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": [
"<table>",
"{% for kv, data in const %}",
"{% if data.zoom <= map.zoom %}",
" <tr>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
" <td>",
" {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
" </td>",
" </tr>",
"{% endif %}",
"{% endfor %}",
"</table>"
],
"const": {
"amenity=courthouse": {
"sign": "<i class=\"fas fa-gavel\"></i>",
"zoom": 14
},
"office=lawyer": {
"sign": "⚖",
"zoom": 14
},
"office=notary": {
"sign": "<i class=\"fas fa-file-signature\"></i>",
"zoom": 14
}
}
}

42
memorial.json

@ -33,6 +33,46 @@
"{% endif %}"
],
"description": "{{ tagTransList('historic', value) }}",
"body": [
"<ul>",
"{% if tags.inscription %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-pencil-alt\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('inscription') }}:</span>",
" <span class='value'>{{ localizedTag(tags, 'inscription') }}</span>",
" </li>",
"{% elseif attribute(tags, 'inscription:url') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-pencil-alt\" aria-hidden=\"true\"></i>",
" <span class='key'><a href=\"{{ attribute(tags, 'inscription:url') }}\">{{ keyTrans('inscription') }}</a></span>",
" </li>",
"{% endif %}",
"",
"{% if attribute(tags, 'historic:civilization') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-users\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('historic:civilization') }}:</span>",
" <span class='value'>{{ tagTrans('historic:civilization', attribute(tags, 'historic:civilization')) }}</span>",
" </li>",
"{% endif %}",
"",
"{% if attribute(tags, 'memorial:conflict') %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-bolt\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('memorial:conflict') }}:</span>",
" <span class='value'>{{ tagTransList('memorial:conflict', attribute(tags, 'memorial:conflict')) }}</span>",
" </li>",
"{% endif %}",
"",
"{% if tags.artist_name %}",
" <li class='hasSymbol'>",
" <i class=\"fa fa-palette\" aria-hidden=\"true\"></i>",
" <span class='key'>{{ keyTrans('artist_name') }}:</span>",
" <span class='value'>{{ enumerate(tags.artist_name) }}</span>",
" </li>",
"{% endif %}",
"</ul>"
],
"markerSign": "{{ const[value].sign|raw }}"
},
"info": [
@ -63,7 +103,7 @@
"zoom": 14
},
"monument": {
"sign": "<img src='maki:monument?size=15'>",
"sign": "<img data-src='maki:monument?size=15'>",
"zoom": 11
}
}

80
organisations.json

@ -0,0 +1,80 @@
{
"type": "overpass",
"name": {
"en": "Organisations"
},
"query": {
"13": [
"(",
"nwr[office~\"^(ngo|quango|political_party|association|charity)$\"];",
")"
]
},
"feature": {
"pre": [
"{% set key = 'office' %}",
"{% set value = tags.office %}",
""
],
"description": "{{ tagTrans(key, value) }}",
"body": "{% if tags.operator %}{{ keyTrans('operator') }}: {{ tags.operator }}<br/>{% endif %}",
"markerSign": [
"{% set data = const[key ~ '=' ~ value] %}",
"{% if data %}",
"{{ data.sign|raw }}",
"{% endif %}"
],
"priority": [
"{% set data = const[key ~ '=' ~ value] %}",
"{% if data %}",
"{{ data.priority }}",
"{% endif %}"
]
},
"info": [
"<table>",
"{% for kv, data in const %}",
"{% if data.zoom <= map.zoom %}",
" <tr>",
" <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
" <td>",
" {{ tagTrans(kv|split('=')[0], kv|split('=')[1]) }}",
" </td>",
" </tr>",
"{% endif %}",
"{% endfor %}",
"</table>"
],
"const": {
"office=ngo": {
"priority": 0,
"sign": "<i class='fas fa-users'></i>",
"zoom": 13
},
"office=quango": {
"priority": 0,
"sign": "<i class='fas fa-users'></i>",
"zoom": 13
},
"office=political_party": {
"priority": 0,
"sign": "<i class='fas fa-flag'></i>",
"zoom": 13
},
"office=association": {
"priority": 0,
"sign": "<i class='fas fa-people-carry'></i>",
"zoom": 13
},
"office=foundation": {
"priority": 0,
"sign": "<i class='fas fa-people-carry'></i>",
"zoom": 13
},
"office=charity": {
"priority": 0,
"sign": "<i class='fas fa-hands-helping'></i>",
"zoom": 13
}
}
}

24
popupBody.html

@ -1,4 +1,12 @@
<ul>
{% set hasDescription = tagsPrefix(tags, 'description:') %}
{% if tags.description or hasDescription %}
<li class='hasSymbol'>
<i class="fa fa-info" aria-hidden="true"></i>
<span class='value'>{{ localizedTag(tags, 'description')|default(attribute(tags, 'description:' ~ hasDescription|keys[0])) }}</span>
</li>
{% endif %}
{% set address = tagsPrefix(tags, 'addr:') %}
{% if address %}
<li class='hasSymbol'>
@ -139,4 +147,20 @@
<span class='value'><a href="https://{{ wikipedia[1] }}.wikipedia.org/wiki/{{ wikipedia[2]|replace({ ' ': '_' }) }}">{{ wikipedia[2] }}</a></span>
{% endif %}
{% if tags.start_date %}
<li class='hasSymbol'>
<i class="fa fa-clock-o" aria-hidden="true"></i>
<span class='key'>{{ keyTrans('start_date') }}:</span>
<span class='value'>{{ enumerate(tags.start_date) }}</span>
</li>
{% endif %}
{% if tags.opening_date %}
<li class='hasSymbol'>
<i class="fa fa-clock-o" aria-hidden="true"></i>
<span class='key'>{{ keyTrans('opening_date') }}:</span>
<span class='value'>{{ enumerate(tags.opening_date) }}</span>
</li>
{% endif %}
</ul>

94
pt.json

@ -69,10 +69,10 @@
"markerSymbol": "",
"styles": "",
"style:hover": {
"width": 0
"width": "0"
},
"style:selected": {
"width": 0
"width": "0"
},
"listStopsExclude": "true",
"listRoutesMarkerSign": "{{ const[tags.route].sign|raw }}",
@ -136,78 +136,78 @@
"{% endfor %}",
"</ul>"
],
"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 %}<li>{{ trans('loading') }}</li>{% 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 %}",