diff --git a/buildings-entrances.json b/buildings-entrances.json new file mode 100644 index 0000000..513cef0 --- /dev/null +++ b/buildings-entrances.json @@ -0,0 +1,27 @@ +{ + "type": "overpass", + "name": { + "de": "Eingänge", + "en": "Entrances", + "fr": "Entrées", + "pt-br": "Acessos" + }, + "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..72a3ae6 --- /dev/null +++ b/buildings-figure-ground.json @@ -0,0 +1,40 @@ +{ + "type": "overpass", + "name": { + "de": "Schwarzplan", + "en": "Figure-ground diagram", + "fr": "Empreintes", + "pt-br": "Cheios e vazios" + }, + "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..6e3851a --- /dev/null +++ b/buildings-height.json @@ -0,0 +1,106 @@ +{ + "type": "overpass", + "name": { + "de": "Gebäudehöhen", + "en": "Building height", + "fr": "Hauteur", + "pt-br": "Altura" + }, + "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>" + ] +} diff --git a/buildings-start_date.json b/buildings-start_date.json new file mode 100644 index 0000000..d2c3ffe --- /dev/null +++ b/buildings-start_date.json @@ -0,0 +1,131 @@ +{ + "type": "overpass", + "name": { + "de": "Gebäudealter", + "en": "Building age", + "fr": "Date de construction", + "pt-br": "Idade" + }, + "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|osmFormatDate({ format: 'short' }) }}", + "{% else %}", + "{{ trans('unknown') }}", + "{% endif %}" + ], + "popupDescription": [ + "{% if tags.start_date %}", + "{{ tags.start_date|osmFormatDate }}", + "{% else %}", + "{{ trans('unknown') }}", + "{% 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><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>{{ repoTrans('date format not understood') }}</td>", + " </tr>", + " <tr>", + " <td>{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}</td>", + " <td>{{ trans('unknown') }}</td>", + " </tr>", + "</table>" + ] +} diff --git a/buildings-type.json b/buildings-type.json new file mode 100644 index 0000000..c7c2d85 --- /dev/null +++ b/buildings-type.json @@ -0,0 +1,241 @@ +{ + "type": "overpass", + "name": { + "de": "Gebäudearten", + "en": "Building types", + "fr": "Type", + "pt-br": "Tipologias" + }, + "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": [] + } + } +} 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/car_maxspeed.json b/car_maxspeed.json index 0b50d60..6c11f5a 100644 --- a/car_maxspeed.json +++ b/car_maxspeed.json @@ -16,36 +16,67 @@ }, "feature": { "pre": [ - "{% if tags.maxspeed is not defined %}", "{% set maxspeedKmh = null %}", "{% set maxspeed = null %}", "{% set unit = null %}", - "{% else %}", "", - "{% if tags.maxspeed|matches(\"^[0-9]+$\") %}", - "{% set maxspeedKmh = tags.maxspeed %}", - "{% set maxspeed = tags.maxspeed %}", - "{% set unit = \"km/h\" %}", + "{% if tags.maxspeed is defined %}", + " {% if tags.maxspeed|matches(\"^[0-9]+$\") %}", + " {% set maxspeedKmh = tags.maxspeed %}", + " {% set maxspeed = tags.maxspeed %}", + " {% set unit = \"km/h\" %}", + " {% elseif tags.maxspeed|matches( \"(^[0-9]+) mph$\") %}", + " {% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}", + " {% set maxspeedKmh = m[1] * 1.60934 %}", + " {% set maxspeed = m[1] %}", + " {% set unit = \"mph\" %}", + " {% endif %}", "{% endif %}", "", - "", - "{% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}", - "{% if m %}", - "{% set maxspeedKmh = m[1] * 1.60934 %}", - "{% set maxspeed = m[1] %}", - "{% set unit = \"mph\" %}", + "{% if attribute(tags, 'maxspeed:forward') is defined %}", + " {% if attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+$\") %}", + " {% set maxspeedFKmh = attribute(tags, 'maxspeed:forward') %}", + " {% set maxspeedF = attribute(tags, 'maxspeed:forward') %}", + " {% set unit = \"km/h\" %}", + " {% elseif attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+ mph$\") %}", + " {% set m = attribute(tags, 'maxspeed:forward')|matches(\"(^[0-9]+) mph$\") %}", + " {% set maxspeedFKmh = m[1] * 1.60934 %}", + " {% set maxspeedF = m[1] %}", + " {% set unit = \"mph\" %}", + " {% endif %}", "{% endif %}", "", + "{% if attribute(tags, 'maxspeed:backward') is defined %}", + " {% if attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+$\") %}", + " {% set maxspeedBKmh = attribute(tags, 'maxspeed:backward') %}", + " {% set maxspeedB = attribute(tags, 'maxspeed:backward') %}", + " {% set unit = \"km/h\" %}", + " {% elseif attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+ mph$\") %}", + " {% set m = attribute(tags, 'maxspeed:backward')|matches(\"(^[0-9]+) mph$\") %}", + " {% set maxspeedBKmh = m[1] * 1.60934 %}", + " {% set maxspeedB = m[1] %}", + " {% set unit = \"mph\" %}", + " {% endif %}", "{% endif %}", "", "{% if not maxspeedKmh %}", "{% set color = \"#404040\" %}", "{% else %}", "{% set color = colorInterpolate(const.colorMap, (maxspeedKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}", + "{% endif %}", + "", + "{% if maxspeedFKmh %}", + "{% set colorF = colorInterpolate(const.colorMap, (maxspeedFKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}", + "{% endif %}", + "", + "{% if maxspeedBKmh %}", + "{% set colorB = colorInterpolate(const.colorMap, (maxspeedBKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}", "{% endif %}" ], "description": [ - "{% if maxspeed %}", + "{% if maxspeedF or maxspeedB %}", + "<span style='color: {{ colorB }}'>{{ maxspeedB|default(trans('unknown')) }}</span> / <span style='color: {{ colorF }}'>{{ maxspeedF|default(trans('unknown')) }}</span> {{ unit }}", + "{% elseif maxspeed %}", "<span style='color: {{ color }}'>{{ maxspeed }} {{ unit }}</span>", "{% elseif tags.maxspeed %}", "{{ tags.maxspeed }}", @@ -53,11 +84,32 @@ "{{ trans('unknown') }}", "{% endif %}" ], - "markerSymbol": null, + "markerSymbol": "", "listMarkerSymbol": "line", + "styles": "{% if maxspeedB or maxspeedF %}left,right,default{% else %}default{% endif %}", "style": { - "width": "3", - "color": "{{ color }}" + "width": "{% if maxspeedB or maxspeedF %}0{% else %}4{% endif %}", + "color": "{{ color }}", + "text": [ + "{% if maxspeedB or maxspeedF %}", + " {% if maxspeedB %}🡸 {{ maxspeedB }} {% endif %}|{% if maxspeedF %} {{ maxspeedF }} 🡺{% endif %} ", + "{% else %}", + " {{ maxspeed }} ", + "{% endif %}" + ], + "textRepeat": "1", + "textOffset": "4", + "textFontWeight": "bold" + }, + "style:left": { + "width": "2", + "color": "{{ colorB|default('#404040') }}", + "offset": "-1" + }, + "style:right": { + "width": "2", + "color": "{{ colorF|default('#404040') }}", + "offset": "1" } }, "const": { diff --git a/car_routes.json b/car_routes.json index f30b89e..d1c7734 100644 --- a/car_routes.json +++ b/car_routes.json @@ -2,6 +2,7 @@ "type": "overpass", "name": { "en": "Car routes", + "fr": "Itinéraires auto", "hu": "Főútvonalak", "pt-br": "Rotas rodoviárias" }, @@ -22,7 +23,9 @@ "{% set refs = [] %}", "{% set color = '#d41d8c' %}", "{% if tags.ref %}", - " {% set refs = refs|merge([ tags.ref ]) %}", + " {% for ref in tags.ref|split(';') %}", + " {% set refs = refs|merge([ ref|trim ]) %}", + " {% endfor %}", "{% endif %}", "", "{% for master in masters %}", @@ -32,7 +35,9 @@ " {% if master.tags.ref %}", " {% set refs = refs|merge([ master.tags.ref ]) %}", " {% endif %}", - "{% endfor %}" + "{% endfor %}", + "", + "{% set refs = refs|unique|natsort({ insensitive: true }) %}" ], "body": [ "<h4>Routes</h4>", @@ -52,7 +57,7 @@ "color": "{{ color }}", "width": 4, "opacity": 1, - "text": "{{ refs|join(' ') }} ", + "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", "textFontWeight": "bold" diff --git a/children.json b/children.json index e814ed1..69fc913 100644 --- a/children.json +++ b/children.json @@ -37,7 +37,7 @@ "{% elseif tags.shop=='baby_goods' or tags.shop=='toys' %}", "{{ keyTrans('shop') }}: {{ tagTrans('shop', tags.shop) }}", "{% elseif tags.amenity=='toilets' and tags.diaper %}", - "{{ tagTrans('amenity', 'toilets') }} with diaper changing table", + "{{ tagTrans('amenity', 'toilets diaper=yes') }}", "{% endif %}" ], "markerSign": [ @@ -78,7 +78,7 @@ " </tr>", " <tr>", " <td>{{ markerCircle({})|raw }}<div class='sign'>🚽🚼</div></td>", - " <td>{{ tagTrans('amenity', 'toilets') }} with diaper changing table</td>", + " <td>{{ tagTrans('amenity', 'toilets diaper=yes') }}</td>", " </tr>", "</table>" ] diff --git a/coal.json b/coal.json new file mode 100644 index 0000000..3b044d0 --- /dev/null +++ b/coal.json @@ -0,0 +1,44 @@ +{ + "type": "overpass", + "name": { + "de": "Kohle", + "en": "Coal", + "fr": "Charbon", + "hu": "Kőszén", + "pt-br": "Carvão" + }, + "query": { + "11": [ + "(", + "node[landuse~\"^(quarry)$\"][resource~\"^(|.*;)coal(|;.*)$\"];", + "way[landuse~\"^(quarry)$\"][resource~\"^(|.*;)coal(|;.*)$\"];", + "relation[landuse~\"^(quarry)$\"][resource~\"^(|.*;)coal(|;.*)$\"];", + "node[man_made~\"^(mineshaft)$\"][resource~\"^(|.*;)coal(|;.*)$\"];", + "way[man_made~\"^(mineshaft)$\"][resource~\"^(|.*;)coal(|;.*)$\"];", + "way[man_made~\"^(pipeline|goods_conveyor)$\"][substance~\"^(|.*;)(coal)(|;.*)$\"];", + "relation[man_made~\"^(pipeline|goods_conveyor)$\"][substance~\"^(|.*;)(coal)(|;.*)$\"];", + "node[power~\"^(plant)$\"][\"generator:source\"~\"^(|.*;)(coal)(|;.*)$\"];", + "way[power~\"^(plant)$\"][\"generator:source\"~\"^(|.*;)(coal)(|;.*)$\"];", + "relation[power~\"^(plant)$\"][\"generator:source\"~\"^(|.*;)(coal)(|;.*)$\"];", + ")" + ] + }, + "feature": { + "description": [ + "{% if tags.man_made == 'pipeline' %}", + "{{ tagTrans('man_made', 'pipeline') }} ({{ tagTrans('substance', tags.substance) }})", + "{% elseif tags.man_made %}", + "{{ tagTrans('man_made', tags.man_made) }}", + "{% elseif tags.power == 'plant' %}", + "{{ tagTrans('power', 'plant') }} {% if attribute(tags, 'generator:source') %}({{ tagTransList('generator:source', attribute(tags, 'generator:source')) }}){% endif %}", + "{% elseif tags.power == 'generator' %}", + "{{ tagTrans('power', 'generator') }} {% if attribute(tags, 'generator:source') %}({{ tagTransList('generator:source', attribute(tags, 'generator:source')) }}){% endif %}", + "{% elseif tags.landuse == 'quarry' %}", + "{{ tagTrans('landuse', tags.landuse) }} {% if tags.resource %}({{ tagTrans('resource', tags.resource) }}){% endif %}", + "{% elseif tags.landuse == 'industrial' %}", + "{{ tagTrans('landuse', tags.landuse) }} ({{ tagTrans('industrial', tags.industrial) }})", + "{% endif %}" + ], + "markerSymbol": null + } +} 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') }}<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 } 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": [ + "<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 %}", diff --git a/culture_religion.json b/culture_religion.json index 52cc1a5..17c8e16 100644 --- a/culture_religion.json +++ b/culture_religion.json @@ -9,7 +9,7 @@ "en": "Culture and Religion", "es": "Cultura y religión", "et": "Kultuur ja religioon", - "fr": "Culture et Religion", + "fr": "Culture et religion", "hu": "Kultúra és vallás", "it": "Cultura", "ja": "文化", diff --git a/cycle_routes.json b/cycle_routes.json index c12c47d..2cb57ed 100644 --- a/cycle_routes.json +++ b/cycle_routes.json @@ -16,18 +16,28 @@ }, "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": "", - "markerSymbol": "" + "style:hover": { + "width": "0" + }, + "style:selected": { + "width": "0" + } }, "memberFeature": { "pre": [ "{% set priority = 4 %}", "{% set network = '' %}", "{% set refs = [] %}", + "{% set dirForward = false %}", + "{% set dirBackward = false %}", + "{% set hover = false %}", + "{% set selected = false %}", "", "{% for master in masters %}", " {% set _p = const[master.tags.network].priority|default(4) %}", @@ -38,6 +48,12 @@ " {% if master.tags.ref %}", " {% set refs = refs|merge([ master.tags.ref ]) %}", " {% endif %}", + " {% if master.role == 'forward' %}{% set dirForward = true %}", + " {% elseif master.role == 'backward' %}{% set dirBackward = true %}", + " {% else %}{% set dirForward = true %}{% set dirBackward = true %}", + " {% endif %}", + " {% if master.flags.hover %}{% set hover = master.role|default('both') %}{% endif %}", + " {% if master.flags.selected %}{% set selected = master.role|default('both') %}{% endif %}", "{% endfor %}" ], "title": "", @@ -54,14 +70,64 @@ "</ul>" ], "listExclude": "1", + "styles": "default{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}", "style": { + "width": "4", "color": "{{ const[network].color }}", - "width": 4, - "opacity": 1, - "text": "{{ refs|join(' ') }} ", + "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 %}", + "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}", + "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", + "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}", + "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", "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 %}", + "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" } }, "const": { diff --git a/detailsBody.html b/detailsBody.html index 6b8d180..ca0b27f 100644 --- a/detailsBody.html +++ b/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'>{{ tags.start_date|osmFormatDate }}</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'>{{ tags.opening_date|osmFormatDate }}</span> + </li> +{% endif %} + </ul> 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 }}<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 } } } diff --git a/power.json b/electric_power.json similarity index 92% rename from power.json rename to electric_power.json index 4be4028..e2cee97 100644 --- a/power.json +++ b/electric_power.json @@ -3,16 +3,16 @@ "name": { "ast": "Enerxía", "cs": "Elektřina", - "de": "Energie", - "en": "Power", + "de": "Elektrischer Strom", + "en": "Electric Power", "et": "Elekter", - "fr": "Énergie", + "fr": "Production/transport électrique", "hu": "Áramellátás", "it": "Energia", "ja": "電力", "nl": "Stroomvoorziening", "pt": "Eletricidade", - "pt-br": "Energia", + "pt-br": "Energia elétrica", "ro": "Energie", "ru": "Энергетика" }, diff --git a/emergency.json b/emergency.json index 64ef840..73b606d 100644 --- a/emergency.json +++ b/emergency.json @@ -34,6 +34,7 @@ "way[amenity~\"^(fire_station|hospital|police)$\"];", "relation[amenity~\"^(fire_station|hospital|police)$\"];", "node[emergency~\"^(phone)$\"];", + "node[highway=emergency_access_point];", ")" ] }, @@ -45,6 +46,9 @@ "{% elseif tags.emergency %}", "{% set key = 'emergency' %}", "{% set value = tags.emergency %}", + "{% elseif tags.highway == 'emergency_access_point' %}", + "{% set key = 'highway' %}", + "{% set value = tags.highway %}", "{% endif %}", "{% set kv = key ~ \"=\" ~ value %}" ], @@ -52,16 +56,18 @@ "markerSign": [ "{% set data = const[kv] %}", "{% if data %}", - "{{ data.sign }}", + "{{ data.sign|raw }}", "{% endif %}" - ] + ], + "markerSymbol": "{{ markerPointer({ fillColor: data.background|default('#f27f6a') })|raw }}", + "listMarkerSymbol": "{{ markerCircle({ fillColor: data.background|default('#f27f6a') })|raw }}" }, "info": [ "<table>", "{% for value, data in const %}", "{% if data.zoom <= map.zoom %}", " <tr>", - " <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign }}</div></td>", + " <td>{{ markerCircle({ fillColor: data.background|default('#f27f6a') })|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>", " <td>{{ tagTrans(value|split('=')[0], value|split('=')[1]) }}</td>", " </tr>", "{% endif %}", @@ -84,6 +90,11 @@ "emergency=phone": { "zoom": "13", "sign": "📞" + }, + "highway=emergency_access_point": { + "zoom": "13", + "sign": "<img data-src='maki:hospital?fill=white'>", + "background": "#009262" } } } 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": [ "<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 } } } diff --git a/hiking_routes.json b/hiking_routes.json index c553c13..3bf40d9 100644 --- a/hiking_routes.json +++ b/hiking_routes.json @@ -57,7 +57,7 @@ "color": "{{ const[network].color }}", "width": 4, "opacity": 1, - "text": "{{ refs|join(' ') }} ", + "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", "textFontWeight": "bold" diff --git a/historic.json b/historic.json index dab36a1..0042fc1 100644 --- a/historic.json +++ b/historic.json @@ -29,14 +29,45 @@ ], "14": [ "(", - "node[historic][historic!~\"^(memorial|monument)$\"];", - "way[historic][historic!~\"^(memorial|monument)$\"];", - "relation[historic][historic!~\"^(memorial|monument)$\"];", + "node[historic][historic!~\"^(memorial|monument|wayside_cross|wayside_shrine|wayside_chapel)$\"];", + "way[historic][historic!~\"^(memorial|monument|wayside_cross|wayside_shrine|wayside_chapel)$\"];", + "relation[historic][historic!~\"^(memorial|monument|wayside_cross|wayside_shrine|wayside_chapel)$\"];", ")" ] }, "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 } } diff --git a/index.json b/index.json index c3eb88e..ba5a57d 100644 --- a/index.json +++ b/index.json @@ -13,7 +13,7 @@ "en": "Leisure, Sport and Shopping", "es": "Ocio, deporte y compras", "et": "Vaba aeg, sport ja ostmine", - "fr": "Loisirs", + "fr": "Vie quotidienne, loisirs et sports", "hu": "Szabadidő, sport és vásárlás", "it": "Tempo libero, sport e shopping", "ja": "レジャー", @@ -46,6 +46,9 @@ }, { "id": "outdoor" + }, + { + "id": "swimming_bathing" } ] }, @@ -86,14 +89,23 @@ { "id": "communication" }, + { + "id": "office" + }, { "id": "financial" }, + { + "id": "law" + }, { "id": "public" }, { "id": "tourism_services" + }, + { + "id": "organisations" } ] }, @@ -250,7 +262,32 @@ "id": "military" }, { - "id": "power" + "id": "energy", + "type": "index", + "name": { + "en": "Energy", + "de": "Energie", + "pt-br": "Energia", + "fr": "Énergie", + "hu": "Energiaellátás" + }, + "subCategories": [ + { + "id": "electric_power" + }, + { + "id": "power_routes" + }, + { + "id": "coal" + }, + { + "id": "oil_gas" + }, + { + "id": "renewables" + } + ] }, { "id": "railway", @@ -277,6 +314,9 @@ { "id": "railway-electrification" }, + { + "id": "railway-maxspeed" + }, { "id": "railway-routes" } @@ -316,6 +356,9 @@ }, { "id": "wikipedia" + }, + { + "id": "xmas" } ] } diff --git a/lang/ast.json b/lang/ast.json index c2e4e16..dd6c6ce 100644 --- a/lang/ast.json +++ b/lang/ast.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Infraestructures", "category:alternative_routes": "Rutes", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Infraestructures", "category:car_furniture": "Acondicionamientu urbanu", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Comunicaciones", "category:construction": "Sitios d'obres", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Servicios educativos", + "category:electric_power": "Enerxía", "category:emergency": "Servicios d'emerxencia", + "category:energy": "", "category:financial": "Dineru", "category:gastro": "Gastronomía", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "Accesu a Internet", + "category:law": "", "category:leisure": "Recréu", "category:leisure_sport_shopping": "Recréu, deportes y compres", + "category:memorial": "", "category:military": "Militar", "category:mtb-routes": "", "category:natural": "Formaciones naturales", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Otres", "category:outdoor": "", "category:phone": "Teléfonos", @@ -39,7 +52,7 @@ "category:places_geo": "Llugares", "category:playgrounds": "Xuegos infantiles", "category:post": "Corréu", - "category:power": "Enerxía", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Paraes y estaciones", @@ -48,14 +61,17 @@ "category:railway": "Ferrocarril", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Relixón", + "category:renewables": "", "category:residential": "Zones residenciales", "category:resources": "Estraición de recursos", "category:services": "Servicios", "category:shop": "Compres", "category:special": "", "category:sport": "Deportes", + "category:swimming_bathing": "", "category:tourism_attractions": "Turismu", "category:tourism_services": "Turismu", "category:transport": "Tresporte", @@ -68,5 +84,9 @@ "category:waste": "Basures", "category:water": "", "category:wikipedia": "", - "category:works": "Fábriques" + "category:works": "Fábriques", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/ca.json b/lang/ca.json index 8be27ba..ac2b799 100644 --- a/lang/ca.json +++ b/lang/ca.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Comunicacions", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "", + "category:electric_power": "", "category:emergency": "Serveis d'emergència", + "category:energy": "", "category:financial": "", "category:gastro": "", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "Accés a Internet", + "category:law": "", "category:leisure": "", "category:leisure_sport_shopping": "Oci, esport i compres", + "category:memorial": "", "category:military": "", "category:mtb-routes": "", "category:natural": "", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "", "category:playgrounds": "", "category:post": "", - "category:power": "", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "", + "category:renewables": "", "category:residential": "", "category:resources": "", "category:services": "Serveis", "category:shop": "", "category:special": "", "category:sport": "", + "category:swimming_bathing": "", "category:tourism_attractions": "", "category:tourism_services": "", "category:transport": "", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/cs.json b/lang/cs.json index 05c221e..a6dd03c 100644 --- a/lang/cs.json +++ b/lang/cs.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Občanská vybavenost", "category:alternative_routes": "Trasy cest", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Občasnká vybavenost", "category:car_furniture": "Pouliční přislušenství", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Komunikace", "category:construction": "Staveniště", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Vzdělávací služby", + "category:electric_power": "Elektřina", "category:emergency": "Pohotovostní služby", + "category:energy": "", "category:financial": "Finanční služby", "category:gastro": "Stravování", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "Přístup k internetu", + "category:law": "", "category:leisure": "Volný čas", "category:leisure_sport_shopping": "Volný čas, sporty a nákupy", + "category:memorial": "", "category:military": "Vojenské", "category:mtb-routes": "", "category:natural": "Přírodní úkazy", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Jiné", "category:outdoor": "", "category:phone": "Telefony", @@ -39,7 +52,7 @@ "category:places_geo": "Sídla", "category:playgrounds": "Hřiště", "category:post": "Poštovní služby", - "category:power": "Elektřina", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Zastávky & Stanice", @@ -48,14 +61,17 @@ "category:railway": "Železnice", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Religion", + "category:renewables": "", "category:residential": "Obytné oblasti", "category:resources": "Těžba surovin", "category:services": "Služby", "category:shop": "Obchody", "category:special": "", "category:sport": "Sport", + "category:swimming_bathing": "", "category:tourism_attractions": "Turistika", "category:tourism_services": "Turistika", "category:transport": "Doprava", @@ -68,5 +84,9 @@ "category:waste": "Nakládání s odpady", "category:water": "", "category:wikipedia": "", - "category:works": "Továrny" + "category:works": "Továrny", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/de.json b/lang/de.json index 48e550a..9ef0409 100644 --- a/lang/de.json +++ b/lang/de.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Einrichtungen", "category:alternative_routes": "(ausgeschilderte) Routen", "category:buildings": "Gebäude", + "category:buildings-entrances": "Eingänge", + "category:buildings-figure-ground": "Schwarzplan", + "category:buildings-height": "Gebäudehöhen", + "category:buildings-start_date": "Gebäudealter", + "category:buildings-type": "Gebäudearten", "category:car_amenities": "Einrichtungen", "category:car_furniture": "Straßenausstattung", "category:car_maxspeed": "Höchstgeschwindigkeiten", "category:car_routes": "", "category:children": "Einrichtungen für Kinder", + "category:coal": "Kohle", "category:communication": "Kommunikation", "category:construction": "Baustellen", "category:craft": "Handwerk", @@ -17,7 +23,9 @@ "category:cycle_amenities": "Einrichtungen", "category:cycle_routes": "Radrouten", "category:education": "Bildungseinrichtungen", + "category:electric_power": "Elektrischer Strom", "category:emergency": "Notfalldienste", + "category:energy": "Energie", "category:financial": "Finanzen", "category:gastro": "Gastronomie", "category:gastro-smoking": "Rauchfreie Gastronomie", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "Infrastruktur", "category:internet": "Internetzugang", + "category:law": "", "category:leisure": "Freizeit", "category:leisure_sport_shopping": "Freizeit, Sport und Einkauf", + "category:memorial": "Denkmäler", "category:military": "Militär", "category:mtb-routes": "", "category:natural": "Geographische Objekte", + "category:office": "Ämter, Dienst- und Geschäftsstellen", + "category:oil_gas": "Erdöl und Erdgas", + "category:organisations": "", "category:other": "Andere", "category:outdoor": "Freiluftaktivitäten", "category:phone": "Telekommunikation", @@ -39,7 +52,7 @@ "category:places_geo": "Orte", "category:playgrounds": "Spielplätze", "category:post": "Post", - "category:power": "Energie", + "category:power_routes": "", "category:pt": "ÖV Karte", "category:pt:routes": "Routen", "category:pt:stops": "Haltestellen", @@ -48,14 +61,17 @@ "category:railway": "Eisenbahn", "category:railway-electrification": "Eisenbahn Elektrifizierung", "category:railway-infrastructure": "Eisenbahn Infrastruktur", + "category:railway-maxspeed": "Eisenbahn Höchstgeschwindigkeiten", "category:railway-routes": "", "category:religion": "Religion", + "category:renewables": "Erneuerbare Energien", "category:residential": "Wohngebiete", "category:resources": "Ressourcengewinnung", "category:services": "Dienste", "category:shop": "Einkauf", "category:special": "Spezial", "category:sport": "Sport", + "category:swimming_bathing": "Schwimmen und Baden", "category:tourism_attractions": "Tourismus", "category:tourism_services": "Tourismus", "category:transport": "Transport", @@ -69,5 +85,9 @@ "category:water": "Gewässer", "category:wikipedia": "Wikipedia", "category:works": "Fabriken", + "category:xmas": "Weihnachten", + "date format not understood": "Datumsformat nicht erkannt", + "outdated feature": "Informationen nicht aktuell", + "xmas:outdated-warning": "Objekt wurde nicht für die aktuelle Saison aktualisiert. Bitte prüfen und das Tag 'xmas:lastcheck' auf das aktuelle Datum setzen.", "Objects with diet information": "Objekte mit Ernährungsinformationen" } diff --git a/lang/el.json b/lang/el.json index 8dd6d13..b631c5a 100644 --- a/lang/el.json +++ b/lang/el.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Επικοινωνίες", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Υπηρεσίες Εκπαίδευσης", + "category:electric_power": "", "category:emergency": "Υπηρεσίες Έκτακτης Ανάγκης", + "category:energy": "", "category:financial": "Χρήμα", "category:gastro": "Γαστρονομία", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "Αναψυχή", "category:leisure_sport_shopping": "Αναψυχή, Αθλητισμός και Αγορές", + "category:memorial": "", "category:military": "Στρατιωτικό", "category:mtb-routes": "", "category:natural": "Φυσικοί Σχηματισμοί", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "Μέρη", "category:playgrounds": "", "category:post": "", - "category:power": "", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Στάσεις & Σταθμοί", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Θρησκεία", + "category:renewables": "", "category:residential": "Περιοχές Κατοικίας", "category:resources": "", "category:services": "Υπηρεσίες", "category:shop": "Αγορές", "category:special": "", "category:sport": "Άθληση", + "category:swimming_bathing": "", "category:tourism_attractions": "Τουρισμός", "category:tourism_services": "Τουρισμός", "category:transport": "Μεταφορές", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/en.json b/lang/en.json index 302245a..a804044 100644 --- a/lang/en.json +++ b/lang/en.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Amenities", "category:alternative_routes": "Routes", "category:buildings": "Buildings", + "category:buildings-entrances": "Entrances", + "category:buildings-figure-ground": "Figure-ground diagram", + "category:buildings-height": "Building height", + "category:buildings-start_date": "Building age", + "category:buildings-type": "Building types", "category:car_amenities": "Amenities", "category:car_furniture": "Street Furniture", "category:car_maxspeed": "Maxspeed", "category:car_routes": "Car routes", "category:children": "Children amenities", + "category:coal": "Coal", "category:communication": "Communication", "category:construction": "Construction Sites", "category:craft": "Craft", @@ -17,7 +23,9 @@ "category:cycle_amenities": "Amenities", "category:cycle_routes": "Cycle Routes", "category:education": "Educational Services", + "category:electric_power": "Electric Power", "category:emergency": "Emergency Services", + "category:energy": "Energy", "category:financial": "Financial", "category:gastro": "Gastronomy", "category:gastro-smoking": "Smokefree Gastronomy", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "Infrastructure", "category:internet": "Internet access", + "category:law": "Law", "category:leisure": "Leisure", "category:leisure_sport_shopping": "Leisure, Sport and Shopping", + "category:memorial": "Memorials", "category:military": "Military", "category:mtb-routes": "Mountain bike routes", "category:natural": "Natural Formations", + "category:office": "Offices", + "category:oil_gas": "Petroleum and natural gas", + "category:organisations": "Organisations", "category:other": "Other", "category:outdoor": "Outdoor activities", "category:phone": "Phone", @@ -39,7 +52,7 @@ "category:places_geo": "Places", "category:playgrounds": "Playground", "category:post": "Post", - "category:power": "Power", + "category:power_routes": "Power routes", "category:pt": "Public transport map", "category:pt:routes": "Routes", "category:pt:stops": "Stops & Stations", @@ -48,14 +61,17 @@ "category:railway": "Railway", "category:railway-electrification": "Railway electrification", "category:railway-infrastructure": "Railway infrastructure", + "category:railway-maxspeed": "Railway Maxspeed", "category:railway-routes": "Railway Routes", "category:religion": "Religion", + "category:renewables": "Renewables", "category:residential": "Residential Areas", "category:resources": "Resource Extraction", "category:services": "Services", "category:shop": "Shopping", "category:special": "Special", "category:sport": "Sport", + "category:swimming_bathing": "Swimming and bathing", "category:tourism_attractions": "Tourism", "category:tourism_services": "Tourism", "category:transport": "Transportation", @@ -68,5 +84,9 @@ "category:waste": "Disposal", "category:water": "Waterbodies", "category:wikipedia": "Wikipedia", - "category:works": "Works" + "category:works": "Works", + "category:xmas": "Christmas", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "Feature has not been updated for the current season! Please check and set the tag 'xmas:lastcheck' to the current date." } diff --git a/lang/es.json b/lang/es.json index 98640c8..f5f32dc 100644 --- a/lang/es.json +++ b/lang/es.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "", + "category:electric_power": "", "category:emergency": "Servicios de emergencia", + "category:energy": "", "category:financial": "", "category:gastro": "", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "Acceso a Internet", + "category:law": "", "category:leisure": "", "category:leisure_sport_shopping": "Ocio, deporte y compras", + "category:memorial": "", "category:military": "", "category:mtb-routes": "", "category:natural": "", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "", "category:playgrounds": "", "category:post": "", - "category:power": "", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Paradas y estaciones", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "", + "category:renewables": "", "category:residential": "", "category:resources": "", "category:services": "Servicios", "category:shop": "", "category:special": "", "category:sport": "", + "category:swimming_bathing": "", "category:tourism_attractions": "", "category:tourism_services": "", "category:transport": "", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/et.json b/lang/et.json index 32fb054..e4fed49 100644 --- a/lang/et.json +++ b/lang/et.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Kommunikatsioon", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Haridusteenused", + "category:electric_power": "Elekter", "category:emergency": "Hädaabi teenused", + "category:energy": "", "category:financial": "", "category:gastro": "", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "", "category:leisure_sport_shopping": "Vaba aeg, sport ja ostmine", + "category:memorial": "", "category:military": "", "category:mtb-routes": "", "category:natural": "", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Ülejäänud", "category:outdoor": "", "category:phone": "Telefon", @@ -39,7 +52,7 @@ "category:places_geo": "Kohad", "category:playgrounds": "Mänguväljak", "category:post": "", - "category:power": "Elekter", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "", @@ -48,14 +61,17 @@ "category:railway": "Raudtee", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Religioon", + "category:renewables": "", "category:residential": "Elamupiirkonnad", "category:resources": "", "category:services": "Teenused", "category:shop": "Ostmine", "category:special": "", "category:sport": "", + "category:swimming_bathing": "", "category:tourism_attractions": "Turism", "category:tourism_services": "Turism", "category:transport": "Transport", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/fr.json b/lang/fr.json index 6fec0e0..088e64e 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -4,20 +4,28 @@ "category:alternative_amenities": "Équipement", "category:alternative_routes": "Routes", "category:buildings": "Bâtiments", + "category:buildings-entrances": "Entrées", + "category:buildings-figure-ground": "Empreintes", + "category:buildings-height": "Hauteur", + "category:buildings-start_date": "Date de construction", + "category:buildings-type": "Type", "category:car_amenities": "Équipements auto", "category:car_furniture": "Fournitures automobiles", "category:car_maxspeed": "Limites de vitesse", - "category:car_routes": "", + "category:car_routes": "Itinéraires auto", "category:children": "Équipements pour enfants", + "category:coal": "Charbon", "category:communication": "Communication", "category:construction": "Constructions", "category:craft": "Artisanat", "category:culture": "Culture", - "category:culture_religion": "Culture et Religion", + "category:culture_religion": "Culture et religion", "category:cycle_amenities": "Équipements vélo", "category:cycle_routes": "Itinéraires vélo", "category:education": "Éducation", + "category:electric_power": "Production/transport électrique", "category:emergency": "Services d'urgence", + "category:energy": "Énergie", "category:financial": "Finance", "category:gastro": "Restauration", "category:gastro-smoking": "Restauration sans tabac", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "Infrastructures", "category:internet": "Internet", + "category:law": "Services législatifs", "category:leisure": "Loisirs", - "category:leisure_sport_shopping": "Loisirs", - "category:military": "Militaire", + "category:leisure_sport_shopping": "Vie quotidienne, loisirs et sports", + "category:memorial": "Mémoriaux", + "category:military": "Équipements et zones militaires", "category:mtb-routes": "Itinéraires de VTT", "category:natural": "Éléments naturels", + "category:office": "Bureaux", + "category:oil_gas": "Pétrole et gaz naturel", + "category:organisations": "Organisations", "category:other": "Autres", "category:outdoor": "Activités de plein air", "category:phone": "Téléphone", @@ -39,27 +52,30 @@ "category:places_geo": "Lieux", "category:playgrounds": "Jeux pour enfants", "category:post": "", - "category:power": "Énergie", - "category:pt": "", + "category:power_routes": "Réseaux électriques", + "category:pt": "Carte des transports publics", "category:pt:routes": "Lignes", "category:pt:stops": "Arrêts/Stops, Stations", "category:pt_amenities": "Équipements", - "category:public": "Services Publics", + "category:public": "Services et équipements publics", "category:railway": "Chemins de fer", "category:railway-electrification": "Puissance électrique ferroviaire", "category:railway-infrastructure": "Infrastructure ferroviaire", + "category:railway-maxspeed": "Limites de vitesse", "category:railway-routes": "Lignes ferroviaires", "category:religion": "Religion", + "category:renewables": "Énergies renouvelables", "category:residential": "Zones résidentielles", "category:resources": "Extraction des ressources", "category:services": "Services", "category:shop": "Magasins/Boutiques", "category:special": "Catégories spéciales", "category:sport": "Sports", + "category:swimming_bathing": "Natation, baignade et bains", "category:tourism_attractions": "Tourisme", "category:tourism_services": "Tourisme", "category:transport": "Transports", - "category:transport_alternative": "Alternatif (Cyclisme, Randonnée, ...)", + "category:transport_alternative": "Alternatif (cyclisme, randonnée, ...)", "category:transport_car": "Transport automobile", "category:transport_cycle": "Cyclisme", "category:transport_pt": "Transports publics", @@ -68,5 +84,9 @@ "category:waste": "Déchets/Recyclage", "category:water": "Hydrographie", "category:wikipedia": "Wikipédia", - "category:works": "Zones industrielles" + "category:works": "Zones industrielles", + "category:xmas": "Noël", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/hu.json b/lang/hu.json index 541d46f..5fd5cb9 100644 --- a/lang/hu.json +++ b/lang/hu.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Létesítmények", "category:alternative_routes": "Útvonalak", "category:buildings": "Épületek", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Létesítmények", "category:car_furniture": "Jelzőtáblák", "category:car_maxspeed": "Sebességkorlátozás", "category:car_routes": "Főútvonalak", "category:children": "Gyermekek", + "category:coal": "Kőszén", "category:communication": "Kommunikácó", "category:construction": "Építési terület", "category:craft": "Műhelyek", @@ -17,7 +23,9 @@ "category:cycle_amenities": "Kerékpáros létesítmények", "category:cycle_routes": "Kerékpáros útvonalak", "category:education": "Oktatás", + "category:electric_power": "Áramellátás", "category:emergency": "Vészhelyzet", + "category:energy": "Energiaellátás", "category:financial": "Pénzügyek", "category:gastro": "Vendéglátás", "category:gastro-smoking": "Nem dohányzó vendéglátóhelyek", @@ -27,11 +35,16 @@ "category:index": "Tartalom", "category:infrastructure": "Infrastruktúra", "category:internet": "Internetcsatlakozás", + "category:law": "", "category:leisure": "Szabadidő", "category:leisure_sport_shopping": "Szabadidő, sport és vásárlás", + "category:memorial": "Emlékművek", "category:military": "Katonai objektumok", "category:mtb-routes": "Hegyikerékpáros útvonalak", "category:natural": "Természeti képződmények", + "category:office": "Irodák, hivatalok", + "category:oil_gas": "Kőolaj, földgáz", + "category:organisations": "", "category:other": "Egyéb", "category:outdoor": "Szabadtéri tevékenységek", "category:phone": "Telefon", @@ -39,7 +52,7 @@ "category:places_geo": "Helyek", "category:playgrounds": "Játszóterek", "category:post": "Posta", - "category:power": "Áramellátás", + "category:power_routes": "Távvezetékek", "category:pt": "Tömegközlekedési térkép", "category:pt:routes": "Útvonalak", "category:pt:stops": "Megállók és állomások", @@ -48,16 +61,19 @@ "category:railway": "Vasút", "category:railway-electrification": "Vasút villamosítottsága", "category:railway-infrastructure": "Vasúti infrastruktúra", + "category:railway-maxspeed": "Sebességkorlátozás", "category:railway-routes": "Vasútvonalak", "category:religion": "Vallás", + "category:renewables": "Megújuló energia", "category:residential": "Lakóövezetek", "category:resources": "Bányászat", "category:services": "Szolgáltatások", "category:shop": "Vásárlás", "category:special": "Speciális", "category:sport": "Sport", + "category:swimming_bathing": "Fürdőzés, úszás", "category:tourism_attractions": "Látnivalók", - "category:tourism_services": "Turisztikai szolgáltatások", + "category:tourism_services": "Szálláshelyek, turisztikai információk", "category:transport": "Közlekedés", "category:transport_alternative": "Alternatív (Kerékpár, Túra)", "category:transport_car": "Autós közlekedés", @@ -68,5 +84,9 @@ "category:waste": "Hulladék", "category:water": "Vizek", "category:wikipedia": "Wikipédia", - "category:works": "Üzemek" + "category:works": "Üzemek", + "category:xmas": "Karácsony", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/it.json b/lang/it.json index 96517f0..0a02801 100644 --- a/lang/it.json +++ b/lang/it.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Infrastrutture", "category:alternative_routes": "Itinerari segnalati", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Infrastrutture", "category:car_furniture": "Dotazioni stradali", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Communicazioni", "category:construction": "Cantieri", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Istruzione", + "category:electric_power": "Energia", "category:emergency": "Servizi d'emergenza", + "category:energy": "", "category:financial": "Finanze", "category:gastro": "Gastronomia", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "Tempo libero", "category:leisure_sport_shopping": "Tempo libero, sport e shopping", + "category:memorial": "", "category:military": "Militare", "category:mtb-routes": "", "category:natural": "Natura", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Altri", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "Luoghi", "category:playgrounds": "", "category:post": "", - "category:power": "Energia", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Stazioni e fermate", @@ -48,14 +61,17 @@ "category:railway": "Ferrovie", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Religione", + "category:renewables": "", "category:residential": "Aree residenziali", "category:resources": "Areee estrattive", "category:services": "Servizi", "category:shop": "Acquisti", "category:special": "", "category:sport": "Sport", + "category:swimming_bathing": "", "category:tourism_attractions": "Turismo", "category:tourism_services": "Turismo", "category:transport": "Trasporti", @@ -68,5 +84,9 @@ "category:waste": "Smaltimento", "category:water": "", "category:wikipedia": "", - "category:works": "Fabbriche" + "category:works": "Fabbriche", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/ja.json b/lang/ja.json index b1e963f..478c538 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "生活環境", "category:alternative_routes": "ルート", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "生活環境", "category:car_furniture": "街路設置公共物", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "交流", "category:construction": "工事中", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "教育サービス", + "category:electric_power": "電力", "category:emergency": "緊急サービス", + "category:energy": "", "category:financial": "金融", "category:gastro": "食べ物", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "インターネット接続", + "category:law": "", "category:leisure": "レジャー", "category:leisure_sport_shopping": "レジャー", + "category:memorial": "", "category:military": "軍事", "category:mtb-routes": "", "category:natural": "自然地層", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "その他", "category:outdoor": "", "category:phone": "電話", @@ -39,7 +52,7 @@ "category:places_geo": "場所", "category:playgrounds": "", "category:post": "郵便", - "category:power": "電力", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "停留所と駅", @@ -48,14 +61,17 @@ "category:railway": "鉄道", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "宗教", + "category:renewables": "", "category:residential": "住居エリア", "category:resources": "", "category:services": "サービス", "category:shop": "ショッピング", "category:special": "", "category:sport": "スポーツ", + "category:swimming_bathing": "", "category:tourism_attractions": "観光", "category:tourism_services": "観光", "category:transport": "輸送", @@ -68,5 +84,9 @@ "category:waste": "処理場", "category:water": "", "category:wikipedia": "", - "category:works": "工場" + "category:works": "工場", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/nl.json b/lang/nl.json index edb0a13..cad77ca 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Voorzieningen", "category:alternative_routes": "Alternatieve routes", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Voorzieningen", "category:car_furniture": "Straatmeubilair", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Communicatie", "category:construction": "Bouwterrein", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Onderwijs", + "category:electric_power": "Stroomvoorziening", "category:emergency": "Hulpdiensten", + "category:energy": "", "category:financial": "Financieel", "category:gastro": "Gastronomie", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "Internettoegang", + "category:law": "", "category:leisure": "Vrije tijd", "category:leisure_sport_shopping": "Vrije tijd, Sport en Winkelen", + "category:memorial": "", "category:military": "Militair", "category:mtb-routes": "", "category:natural": "Natuurlijke Formaties", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Andere", "category:outdoor": "", "category:phone": "Telefonie", @@ -39,7 +52,7 @@ "category:places_geo": "Plaatsen", "category:playgrounds": "", "category:post": "Post", - "category:power": "Stroomvoorziening", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Haltes en Stations", @@ -48,14 +61,17 @@ "category:railway": "Spoorwegen", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Religie", + "category:renewables": "", "category:residential": "Woongebieden", "category:resources": "Grondstoffenwinning", "category:services": "Dienstverlening", "category:shop": "Winkelen", "category:special": "", "category:sport": "Sport", + "category:swimming_bathing": "", "category:tourism_attractions": "Toerisme", "category:tourism_services": "Toerisme", "category:transport": "Vervoer", @@ -68,5 +84,9 @@ "category:waste": "Afvalverwijdering", "category:water": "", "category:wikipedia": "", - "category:works": "Fabrieken" + "category:works": "Fabrieken", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/pl.json b/lang/pl.json index 45961b0..77e00eb 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "Elementy drogowe", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Edukacyjne", + "category:electric_power": "", "category:emergency": "", + "category:energy": "", "category:financial": "Finasowe", "category:gastro": "Gastronomia", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "", "category:leisure_sport_shopping": "Wypoczynek, Sport i Zakupy", + "category:memorial": "", "category:military": "", "category:mtb-routes": "", "category:natural": "", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "Miejsca", "category:playgrounds": "", "category:post": "", - "category:power": "", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Przystanki i Stacje", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "", + "category:renewables": "", "category:residential": "", "category:resources": "", "category:services": "Usługi", "category:shop": "Zakupy", "category:special": "", "category:sport": "", + "category:swimming_bathing": "", "category:tourism_attractions": "Turystyka", "category:tourism_services": "Turystyka", "category:transport": "Transport", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/pt-br.json b/lang/pt-br.json index a79642a..0397155 100644 --- a/lang/pt-br.json +++ b/lang/pt-br.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Equipamentos", "category:alternative_routes": "Rotas", "category:buildings": "Edificações", + "category:buildings-entrances": "Acessos", + "category:buildings-figure-ground": "Cheios e vazios", + "category:buildings-height": "Altura", + "category:buildings-start_date": "Idade", + "category:buildings-type": "Tipologias", "category:car_amenities": "Equipamentos", "category:car_furniture": "Mobiliário urbano", "category:car_maxspeed": "Velocidade máxima", "category:car_routes": "Rotas rodoviárias", "category:children": "Equipamentos infantis", + "category:coal": "Carvão", "category:communication": "Comunicação", "category:construction": "Terrenos vazios e obras", "category:craft": "Ofícios", @@ -17,7 +23,9 @@ "category:cycle_amenities": "Equipamentos", "category:cycle_routes": "Ciclorrotas", "category:education": "Educação", + "category:electric_power": "Energia elétrica", "category:emergency": "Emergência", + "category:energy": "Energia", "category:financial": "Finanças", "category:gastro": "Gastronomia", "category:gastro-smoking": "Gastronomia sem fumo", @@ -27,11 +35,16 @@ "category:index": "Índice", "category:infrastructure": "Infraestrutura", "category:internet": "Acesso à Internet", + "category:law": "Direito", "category:leisure": "Lazer", "category:leisure_sport_shopping": "Lazer, esportes e compras", + "category:memorial": "Memoriais", "category:military": "Militar", - "category:mtb-routes": "Rotas mountain bike", + "category:mtb-routes": "Rotas de mountain bike", "category:natural": "Formações naturais", + "category:office": "Escritórios e agências", + "category:oil_gas": "Petróleo e gás", + "category:organisations": "Organizações", "category:other": "Outros", "category:outdoor": "Atividades ao ar livre", "category:phone": "Telefone", @@ -39,25 +52,28 @@ "category:places_geo": "Lugares", "category:playgrounds": "Parquinhos", "category:post": "Correios", - "category:power": "Energia", + "category:power_routes": "Rotas de energia", "category:pt": "Mapa de transporte público", "category:pt:routes": "Rotas", "category:pt:stops": "Paradas e estações", "category:pt_amenities": "Equipamentos", - "category:public": "Serviços públicos", + "category:public": "Utilidade pública", "category:railway": "Ferrovia", "category:railway-electrification": "Eletrificação ferroviária", "category:railway-infrastructure": "Infraestrutura ferroviária", + "category:railway-maxspeed": "Velocidade máxima", "category:railway-routes": "Rotas ferroviárias", "category:religion": "Religião", + "category:renewables": "Renováveis", "category:residential": "Áreas residenciais", "category:resources": "Extração de recursos", "category:services": "Prestação de serviços", "category:shop": "Compras", "category:special": "Especial", "category:sport": "Esportes", + "category:swimming_bathing": "Natação e banho", "category:tourism_attractions": "Turismo", - "category:tourism_services": "Serviços de turismo", + "category:tourism_services": "Serviços turísticos", "category:transport": "Mobilidade", "category:transport_alternative": "Transporte alternativo", "category:transport_car": "Tráfego individual", @@ -68,5 +84,9 @@ "category:waste": "Lixo", "category:water": "Hidrografia", "category:wikipedia": "Wikipédia", - "category:works": "Fábricas" + "category:works": "Produção", + "category:xmas": "Natal", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/pt.json b/lang/pt.json index e055231..e38e6a6 100644 --- a/lang/pt.json +++ b/lang/pt.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "Rotas", "category:buildings": "Edifícios", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "Mobiliário urbano", "category:car_maxspeed": "Velocidade máxima", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Comunicação", "category:construction": "Locais de construção", "category:craft": "Artesanato", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "Ciclovias", "category:education": "Educação", + "category:electric_power": "Eletricidade", "category:emergency": "Emergência", + "category:energy": "", "category:financial": "Finanças", "category:gastro": "Restauração", "category:gastro-smoking": "Restauração livre de tabaco", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "Infraestrutura", "category:internet": "Acesso à Internet", + "category:law": "", "category:leisure": "Lazer", "category:leisure_sport_shopping": "Lazer, desporto e compras", + "category:memorial": "", "category:military": "Militar", "category:mtb-routes": "", "category:natural": "Formações naturais", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Outros", "category:outdoor": "", "category:phone": "Telefone", @@ -39,7 +52,7 @@ "category:places_geo": "Lugares", "category:playgrounds": "Parques infantis", "category:post": "Correios", - "category:power": "Eletricidade", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "Rotas", "category:pt:stops": "", @@ -48,14 +61,17 @@ "category:railway": "Linhas ferroviárias", "category:railway-electrification": "Eletrificação ferroviária", "category:railway-infrastructure": "Infraestrutura ferroviária", + "category:railway-maxspeed": "Velocidade máxima", "category:railway-routes": "", "category:religion": "Religião", + "category:renewables": "", "category:residential": "Áreas residenciais", "category:resources": "Extração de recursos", "category:services": "Serviços", "category:shop": "Compras", "category:special": "Especial", "category:sport": "Desporto", + "category:swimming_bathing": "", "category:tourism_attractions": "Turismo", "category:tourism_services": "Turismo", "category:transport": "Transportes", @@ -68,5 +84,9 @@ "category:waste": "Lixo", "category:water": "Massas de água", "category:wikipedia": "Wikipédia", - "category:works": "Fábricas" + "category:works": "Fábricas", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/ro.json b/lang/ro.json index d79d6b0..1ac1b5b 100644 --- a/lang/ro.json +++ b/lang/ro.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Comunicatii", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Servicii educatie", + "category:electric_power": "Energie", "category:emergency": "Servicii urgenta", + "category:energy": "", "category:financial": "Financiar", "category:gastro": "Gastronomie", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "Acces internet", + "category:law": "", "category:leisure": "Timp liber", "category:leisure_sport_shopping": "Timp liber, Sport si Cumparaturi", + "category:memorial": "", "category:military": "Militar", "category:mtb-routes": "", "category:natural": "", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Altele", "category:outdoor": "", "category:phone": "Telefon", @@ -39,7 +52,7 @@ "category:places_geo": "Locuri", "category:playgrounds": "Loc de joaca", "category:post": "", - "category:power": "Energie", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Religie", + "category:renewables": "", "category:residential": "Zona rezidentiala", "category:resources": "", "category:services": "Servicii", "category:shop": "Cumpărături", "category:special": "", "category:sport": "", + "category:swimming_bathing": "", "category:tourism_attractions": "Turism", "category:tourism_services": "Turism", "category:transport": "Transport", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/ru.json b/lang/ru.json index 7a2a36f..30e885e 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Полезные места", "category:alternative_routes": "Маршруты", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Обслуживание транспорта", "category:car_furniture": "Элементы дороги", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Услуги связи", "category:construction": "Места строительства", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Образование", + "category:electric_power": "Энергетика", "category:emergency": "Экстренные службы", + "category:energy": "", "category:financial": "Финансы", "category:gastro": "Общепит", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "Досуг", "category:leisure_sport_shopping": "Досуг", + "category:memorial": "", "category:military": "Вооружённые силы", "category:mtb-routes": "", "category:natural": "Природные образования", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Прочее", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "Места", "category:playgrounds": "", "category:post": "", - "category:power": "Энергетика", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Остановки и станции", @@ -48,14 +61,17 @@ "category:railway": "Железные дороги", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Религия", + "category:renewables": "", "category:residential": "Жилые районы", "category:resources": "Добыча ресурсов", "category:services": "Услуги", "category:shop": "Покупки", "category:special": "", "category:sport": "Спорт", + "category:swimming_bathing": "", "category:tourism_attractions": "Туризм", "category:tourism_services": "Туризм", "category:transport": "Транспорт", @@ -68,5 +84,9 @@ "category:waste": "Переработка отходов", "category:water": "", "category:wikipedia": "", - "category:works": "Промышленность" + "category:works": "Промышленность", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/template.json b/lang/template.json index 2f47544..c7952ee 100644 --- a/lang/template.json +++ b/lang/template.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "", "category:alternative_routes": "", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "", "category:car_furniture": "", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "", + "category:electric_power": "", "category:emergency": "", + "category:energy": "", "category:financial": "", "category:gastro": "", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "", "category:leisure_sport_shopping": "", + "category:memorial": "", "category:military": "", "category:mtb-routes": "", "category:natural": "", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "", "category:playgrounds": "", "category:post": "", - "category:power": "", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "", + "category:renewables": "", "category:residential": "", "category:resources": "", "category:services": "", "category:shop": "", "category:special": "", "category:sport": "", + "category:swimming_bathing": "", "category:tourism_attractions": "", "category:tourism_services": "", "category:transport": "", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/lang/uk.json b/lang/uk.json index e9778eb..4e36f3f 100644 --- a/lang/uk.json +++ b/lang/uk.json @@ -4,11 +4,17 @@ "category:alternative_amenities": "Amenities", "category:alternative_routes": "Маршрути", "category:buildings": "", + "category:buildings-entrances": "", + "category:buildings-figure-ground": "", + "category:buildings-height": "", + "category:buildings-start_date": "", + "category:buildings-type": "", "category:car_amenities": "Amenities", "category:car_furniture": "Street Furniture", "category:car_maxspeed": "", "category:car_routes": "", "category:children": "", + "category:coal": "", "category:communication": "Телекомунікації", "category:construction": "", "category:craft": "", @@ -17,7 +23,9 @@ "category:cycle_amenities": "", "category:cycle_routes": "", "category:education": "Освіта", + "category:electric_power": "", "category:emergency": "Швидка допомога", + "category:energy": "", "category:financial": "Фінанси", "category:gastro": "Гастрономія", "category:gastro-smoking": "", @@ -27,11 +35,16 @@ "category:index": "", "category:infrastructure": "", "category:internet": "", + "category:law": "", "category:leisure": "Дозвілля", "category:leisure_sport_shopping": "Дозвілля", + "category:memorial": "", "category:military": "", "category:mtb-routes": "", "category:natural": "Природне середовище", + "category:office": "", + "category:oil_gas": "", + "category:organisations": "", "category:other": "Інше", "category:outdoor": "", "category:phone": "", @@ -39,7 +52,7 @@ "category:places_geo": "Місцевість", "category:playgrounds": "Дитячий майданчик", "category:post": "", - "category:power": "", + "category:power_routes": "", "category:pt": "", "category:pt:routes": "", "category:pt:stops": "Зупинки та станції", @@ -48,14 +61,17 @@ "category:railway": "", "category:railway-electrification": "", "category:railway-infrastructure": "", + "category:railway-maxspeed": "", "category:railway-routes": "", "category:religion": "Релігія", + "category:renewables": "", "category:residential": "Житлова зона", "category:resources": "", "category:services": "Послуги", "category:shop": "Торгівля", "category:special": "", "category:sport": "Спорт. Інше.", + "category:swimming_bathing": "", "category:tourism_attractions": "Туризм", "category:tourism_services": "Туризм", "category:transport": "Транспорт", @@ -68,5 +84,9 @@ "category:waste": "", "category:water": "", "category:wikipedia": "", - "category:works": "" + "category:works": "", + "category:xmas": "", + "date format not understood": "", + "outdated feature": "", + "xmas:outdated-warning": "" } diff --git a/law.json b/law.json new file mode 100644 index 0000000..f670988 --- /dev/null +++ b/law.json @@ -0,0 +1,61 @@ +{ + "type": "overpass", + "name": { + "en": "Law", + "fr": "Services législatifs", + "pt-br": "Direito" + }, + "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 + } + } +} diff --git a/memorial.json b/memorial.json index 30cc08c..0580731 100644 --- a/memorial.json +++ b/memorial.json @@ -2,7 +2,10 @@ "type": "overpass", "name": { "de": "Denkmäler", - "en": "Memorials" + "en": "Memorials", + "fr": "Mémoriaux", + "hu": "Emlékművek", + "pt-br": "Memoriais" }, "query": { "11": [ @@ -30,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": [ @@ -60,7 +103,7 @@ "zoom": 14 }, "monument": { - "sign": "<img src='maki:monument?size=15'>", + "sign": "<img data-src='maki:monument?size=15'>", "zoom": 11 } }, diff --git a/military.json b/military.json index 4c4eade..39b276a 100644 --- a/military.json +++ b/military.json @@ -6,7 +6,7 @@ "de": "Militär", "el": "Στρατιωτικό", "en": "Military", - "fr": "Militaire", + "fr": "Équipements et zones militaires", "hu": "Katonai objektumok", "it": "Militare", "ja": "軍事", diff --git a/mtb-routes.json b/mtb-routes.json index 08d1270..ffc2670 100644 --- a/mtb-routes.json +++ b/mtb-routes.json @@ -4,7 +4,7 @@ "en": "Mountain bike routes", "fr": "Itinéraires de VTT", "hu": "Hegyikerékpáros útvonalak", - "pt-br": "Rotas mountain bike" + "pt-br": "Rotas de mountain bike" }, "query": { "13": "relation[type=route][route=mtb]" @@ -44,7 +44,7 @@ "color": "#007fff", "width": 4, "opacity": 1, - "text": "{{ refs|join(' ') }} ", + "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", "textFontWeight": "bold" diff --git a/office.json b/office.json new file mode 100644 index 0000000..b92ba34 --- /dev/null +++ b/office.json @@ -0,0 +1,47 @@ +{ + "type": "overpass", + "name": { + "de": "Ämter, Dienst- und Geschäftsstellen", + "en": "Offices", + "fr": "Bureaux", + "hu": "Irodák, hivatalok", + "pt-br": "Escritórios e agências" + }, + "query": { + "14": "nwr[office]" + }, + "feature": { + "description": [ + "{{ tagTrans('office', tags.office) }}", + "{% if tags.office == 'government' and tags.government %}({{ tagTrans('government', tags.government) }}){% endif %}" + ], + "markerSign": "{{ const[tags.office]|raw }}" + }, + "const": { + "government": "<i class='fas fa-landmark'></i>", + "company": "<i class='fas fa-building'></i>", + "estate_agent": "<i class='fas fa-home'></i>", + "insurance": "<i class='fas fa-file-signature'></i>", + "lawyer": "<i class='fas fa-gavel'></i>", + "educational_institution": "<i class='fas fa-school'></i>", + "administrative": "<i class='fas fa-landmark'></i>", + "telecommunication": "<i class='fas fa-phone'></i>", + "ngo": "<i class='fas fa-people-carry'></i>", + "quango": "<i class='fas fa-people-carry'></i>", + "association": "<i class='fas fa-people-carry'></i>", + "it": "<i class='fas fa-desktop'></i>", + "accountant": "<i class='fas fa-money-bill-alt'></i>", + "tax_advisor": "<i class='fas fa-money-bill-alt'></i>", + "employment_agency": "<i class='fas fa-user'></i>", + "research": "<i class='fas fa-flask'></i>", + "religion": "<i class='fas fa-pray'></i>", + "architect": "<i class='fas fa-torii-gate'></i>", + "financial": "<i class='fas fa-money-bill'></i>", + "newspaper": "<i class='fas fa-newspaper'></i>", + "political_party": "<i class='fas fa-flag'></i>", + "advertising_agency": "<i class='fas fa-ad'></i>", + "therapist": "<i class='fas fa-couch'></i>", + "travel_agent": "<i class='fas fa-plane-departure'></i>", + "publisher": "<i class='fas fa-book'></i>" + } +} diff --git a/oil_gas.json b/oil_gas.json new file mode 100644 index 0000000..0f9acee --- /dev/null +++ b/oil_gas.json @@ -0,0 +1,67 @@ +{ + "type": "overpass", + "name": { + "de": "Erdöl und Erdgas", + "en": "Petroleum and natural gas", + "fr": "Pétrole et gaz naturel", + "hu": "Kőolaj, földgáz", + "pt-br": "Petróleo e gás" + }, + "query": { + "11": [ + "(", + "way[man_made~\"^(pipeline|goods_conveyor)$\"][substance~\"^(|.*;)(oil|gas|lng|cng|multiphase)(|;.*)$\"];", + "relation[man_made~\"^(pipeline|goods_conveyor)$\"][substance~\"^(|.*;)(oil|gas|lng|cng|multiphase)(|;.*)$\"];", + "node[landuse=industrial][industrial~\"^(|.*;)(refinery)(|;.*)$\"];", + "way[landuse=industrial][industrial~\"^(|.*;)(refinery)(|;.*)$\"];", + "relation[landuse=industrial][industrial~\"^(|.*;)(refinery)(|;.*)$\"];", + "way[waterway=offshore_field];", + "relation[waterway=offshore_field];", + "node[man_made~\"^(offshore_platform)$\"];", + "way[man_made~\"^(offshore_platform)$\"];", + "relation[man_made~\"^(offshore_platform)$\"];", + "node[power~\"^(plant)$\"][\"generator:source\"~\"^(|.*;)(oil|gas|diesel|gasoline)(|;.*)$\"];", + "way[power~\"^(plant)$\"][\"generator:source\"~\"^(|.*;)(oil|gas|diesel|gasoline)(|;.*)$\"];", + "relation[power~\"^(plant)$\"][\"generator:source\"~\"^(|.*;)(oil|gas|diesel|gasoline)(|;.*)$\"];", + ")" + ], + "13": [ + "(", + "way[man_made~\"^(pipeline|goods_conveyor)$\"][substance~\"^(|.*;)(oil|gas|lng|cng|multiphase)(|;.*)$\"];", + "relation[man_made~\"^(pipeline|goods_conveyor)$\"][substance~\"^(|.*;)(oil|gas|lng|cng|multiphase)(|;.*)$\"];", + "node[landuse=industrial][industrial~\"^(|.*;)(oil|gas|lng|cng|multiphase|refinery|oil_refinery)(|;.*)$\"];", + "way[landuse=industrial][industrial~\"^(|.*;)(oil|gas|lng|cng|multiphase|refinery|oil_refinery)(|;.*)$\"];", + "relation[landuse=industrial][industrial~\"^(|.*;)(oil|gas|lng|cng|multiphase|refinery|oil_refinery)(|;.*)$\"];", + "way[waterway=offshore_field];", + "relation[waterway=offshore_field];", + "node[man_made~\"^(petroleum_well|offshore_platform|gasometer|oil_tank|gas_cavern)$\"];", + "node[man_made~\"^(storage_tank)$\"][contents~\"^(oil|gas|lng|cng|multiphase)$\"];", + "way[man_made~\"^(petroleum_well|offshore_platform|gasometer|oil_tank|gas_cavern)$\"];", + "way[man_made~\"^(storage_tank)$\"][contents~\"^(oil|gas|lng|cng|multiphase)(|;.*)$\"];", + "relation[man_made~\"^(petroleum_well|offshore_platform|gasometer|oil_tank|gas_cavern)(|;.*)$\"];", + "relation[man_made~\"^(storage_tank)$\"][contents~\"^(|.*;)(oil|gas|lng|cng|multiphase)(|;.*)$\"];", + "node[power~\"^(plant|generator)$\"][\"generator:source\"~\"^(|.*;)(oil|gas|diesel|gasoline)(|;.*)$\"];", + "way[power~\"^(plant|generator)$\"][\"generator:source\"~\"^(|.*;)(oil|gas|diesel|gasoline)(|;.*)$\"];", + "relation[power~\"^(plant|generator)$\"][\"generator:source\"~\"^(|.*;)(oil|gas|diesel|gasoline)(|;.*)$\"];", + ")" + ] + }, + "feature": { + "description": [ + "{% if tags.man_made == 'pipeline' %}", + "{{ tagTrans('man_made', 'pipeline') }} ({{ tagTrans('substance', tags.substance) }})", + "{% elseif tags.man_made %}", + "{{ tagTrans('man_made', tags.man_made) }}", + "{% elseif tags.power == 'plant' %}", + "{{ tagTrans('power', 'plant') }} {% if attribute(tags, 'generator:source') %}({{ tagTransList('generator:source', attribute(tags, 'generator:source')) }}){% endif %}", + "{% elseif tags.power == 'generator' %}", + "{{ tagTrans('power', 'generator') }} {% if attribute(tags, 'generator:source') %}({{ tagTransList('generator:source', attribute(tags, 'generator:source')) }}){% endif %}", + "{% elseif tags.waterway == 'offshore_field' %}", + "{{ tagTrans('waterway', tags.waterway) }}", + "{% elseif tags.landuse == 'industrial' %}", + "{{ tagTrans('landuse', tags.landuse) }} ({{ tagTrans('industrial', tags.industrial) }})", + "{% endif %}" + ], + "markerSymbol": null + } +} diff --git a/organisations.json b/organisations.json new file mode 100644 index 0000000..1d73ea0 --- /dev/null +++ b/organisations.json @@ -0,0 +1,82 @@ +{ + "type": "overpass", + "name": { + "en": "Organisations", + "fr": "Organisations", + "pt-br": "Organizações" + }, + "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 + } + } +} diff --git a/popupBody.html b/popupBody.html index 63b8317..b3ead54 100644 --- a/popupBody.html +++ b/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'>{{ tags.start_date|osmFormatDate }}</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'>{{ tags.opening_date|osmFormatDate }}</span> + </li> +{% endif %} + </ul> diff --git a/power_routes.json b/power_routes.json new file mode 100644 index 0000000..61c088e --- /dev/null +++ b/power_routes.json @@ -0,0 +1,66 @@ +{ + "type": "overpass", + "name": { + "en": "Power routes", + "fr": "Réseaux électriques", + "hu": "Távvezetékek", + "pt-br": "Rotas de energia" + }, + "query": { + "10": "relation[type=route][route=power]" + }, + "members": true, + "feature": { + "pre": "{% set color = '#' ~ tags.operator|default('')|md5|slice(0, 6) %}", + "description": "{% if tags.operator %}{{ tags.operator }}{% endif %}", + "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 %}", + "listMarkerSymbol": "{{ markerLine({ 'width': 4, 'color': color })|raw }}", + "markerSymbol": "", + "styles": "" + }, + "memberFeature": { + "pre": [ + "{% set refs = [] %}", + "{% set color = '#d41d8c' %}", + "{% if tags.ref %}", + " {% for ref in tags.ref|split(';') %}", + " {% set refs = refs|merge([ ref|trim ]) %}", + " {% endfor %}", + "{% endif %}", + "", + "{% for master in masters %}", + " {% if master.tags.operator %}", + " {% set color = '#' ~ master.tags.operator|md5|slice(0, 6) %}", + " {% endif %}", + " {% if master.tags.ref %}", + " {% set refs = refs|merge([ master.tags.ref ]) %}", + " {% endif %}", + "{% endfor %}", + "", + "{% set refs = refs|unique|natsort({ insensitive: true }) %}" + ], + "body": [ + "<h4>Routes</h4>", + "<ul>", + "{% for master in masters %}", + " {% set _color = '#' ~ master.tags.operator|default('')|md5|slice(0, 6) %}", + " <li data-object=\"{{ master.id }}\" style='list-style: none;'>", + " <span class='markerParent'><div class='marker'>{{ markerLine({ width: 4, color: _color })|raw }}</div></span>", + " <span class='title'>{% if master.tags.ref and master.tags.name %}{{ master.tags.ref }} - {{ master.tags.name|default(master.tags.ref) }}{% elseif master.tags.ref %}{{ master.tags.ref }}{% elseif master.tags.name %}{{ master.tags.name }}{% else %}{{ trans('unnamed') }}{% endif %}</span>", + " <span class='description'>{{ master.tags.operator }}</span>", + " </li>", + "{% endfor %}", + "</ul>" + ], + "listExclude": "1", + "style": { + "color": "{{ color }}", + "width": 4, + "opacity": 1, + "text": "{{ refs|join(' · ') }} ", + "textRepeat": "1", + "textOffset": "12", + "textFontWeight": "bold" + } + } +} diff --git a/pt.json b/pt.json index bf28e33..267ca54 100644 --- a/pt.json +++ b/pt.json @@ -3,6 +3,7 @@ "name": { "de": "ÖV Karte", "en": "Public transport map", + "fr": "Carte des transports publics", "hu": "Tömegközlekedési térkép", "pt-br": "Mapa de transporte público" }, @@ -57,16 +58,22 @@ ], "description": "{{ tagTrans('route', tags.route) }}", "body": [ - "<h4>Stops</h4><ul>", + "<h4>{{ repoTrans('category:pt:stops') }}</h4><ul>", "{% for member in members %}", "{% if member.tags.highway == 'bus_stop' or member.tags.amenity == 'bus_station' or member.tags.amenity == 'ferry_terminal' or member.tags.railway == 'tram_stop' or member.tags.railway == 'halt' or member.tags.railway == 'station' or member.tags.aerialway == 'station' or member.tags.public_transport == 'stop_position' or member.role|slice(-4) == 'stop' %}", - "<li data-object='{{ member.id }}' data-sublayer='member'><b>{{ member.tags.name|default(member.id) }}</li>", + "<li data-object='{{ member.id }}' data-sublayer='member'><b>{% if member.tags %}{{ member.tags.name|default(trans('unknown')) }}{% else %}<i>{{ trans('loading') }}</i>{% endif %}</li>", "{% endif %}", "{% endfor %}", "</ul>" ], "markerSymbol": "", "styles": "", + "style:hover": { + "width": "0" + }, + "style:selected": { + "width": "0" + }, "listStopsExclude": "true", "listRoutesMarkerSign": "{{ const[tags.route].sign|raw }}", "listRoutesMarkerSymbol": "{{ markerCircle({fillColor:const[tags.route].color})|raw }}", @@ -82,6 +89,10 @@ "{% set isWay = false %}", "{% set aRoute = null %}", "{% set refs = [] %}", + "{% set dirForward = false %}", + "{% set dirBackward = false %}", + "{% set hover = false %}", + "{% set selected = false %}", "{% for master in masters %}", " {% if master.tags.public_transport == 'stop_area' %}", " {% set stopName = master.tags.name %}", @@ -97,7 +108,14 @@ " {% if master.tags.ref %}", " {% set refs = refs|merge([ master.tags.ref ]) %}", " {% endif %}", + " {% if master.dir == 'forward' %}{% set dirForward = true %}", + " {% elseif master.dir == 'backward' %}{% set dirBackward = true %}", + " {% else %}{% set dirForward = true %}{% set dirBackward = true %}", + " {% endif %}", " {% endif %}", + "", + " {% if master.flags.hover %}{% set hover = master.dir|default('both') %}{% endif %}", + " {% if master.flags.selected %}{% set selected = master.dir|default('both') %}{% endif %}", "{% endfor %}", "", "{% set refs = refs|unique|natsort({ insensitive: true }) %}", @@ -105,7 +123,7 @@ ], "title": "{% if isStop %}{{ tags.name|default(stopName)|default(id) }}{% endif %}", "body": [ - "<h4>Routes</h4>", + "<h4>{{ repoTrans('category:pt:routes') }}</h4>", "<ul class='overpass-layer-list'>", "{% for master in masters %}", " {% if master.tags.public_transport != 'stop_area' %}", @@ -118,25 +136,78 @@ "{% endfor %}", "</ul>" ], - "styles": "{% if isStop and stopCount > 0 %}stop{% elseif isWay %}way{% else %}{% endif %}", + "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": "{{ tags.name|default(stopName)|default(id) }}", - "listStopsDescription": "{{ refs|join(' ') }}", + "listStopsTitle": "{% if tags %}{{ tags.name|default(stopName)|default(trans('unknown')) }}{% else %}<li>{{ trans('loading') }}</li>{% endif %}", + "listStopsDescription": "{{ refs|join(' · ') }}", "listRoutesExclude": "true", + "style:stop": { + "width": "4", + "color": "{{ color|default('#ff0000') }}", + "radius": "3", + "zIndex": "1" + }, "style:way": { - "width": "3", + "width": "4", "color": "{{ color|default('#ff0000') }}", - "text": "{{ refs|join(' ') }} ", + "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 %}", + "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}", + "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", + "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}", + "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": "{{ color|default('#ff0000') }}", + "pattern-path-fillOpacity": "1", "textFontWeight": "bold" - }, - "style:stop": { - "width": "5", - "color": "{{ color|default('#ff0000') }}", - "radius": "3" } }, "info": [ diff --git a/public.json b/public.json index cf28f62..448fb31 100644 --- a/public.json +++ b/public.json @@ -7,13 +7,13 @@ "el": "Δημόσιες Υπηρεσίες", "en": "Public Services", "et": "Kommunaalteenused", - "fr": "Services Publics", + "fr": "Services et équipements publics", "hu": "Közszolgáltatások", "it": "Servizi pubblici", "ja": "公共サービス", "nl": "Openbare diensten", "pt": "Serviços públicos", - "pt-br": "Serviços públicos", + "pt-br": "Utilidade pública", "ro": "Servicii publice", "ru": "Общественные места", "uk": "Громадські місця" @@ -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 }}<br/>{% endif %}", "markerSign": [ - "{% if const[value] %}", - "{{ const[value]|raw }}", + "{% set kv = key ~ '=' ~ value %}", + "{% if const[kv] %}", + "{{ const[kv]|raw }}", "{% endif %}" ] }, @@ -66,13 +80,14 @@ "</table>" ], "const": { - "courthouse": "⚖", - "clock": "<i class='fa fa-clock-o' aria-hidden='true'></i>", - "drinking_water": "<img src='maki:drinking-water'>", - "embassy": "<img src='maki:embassy'>", - "public_building": "<img src='maki:building'>", - "recycling": "<img src='maki:recycling'>", - "toilets": "<img src='maki:toilet'>", - "townhall": "<img src='maki:town-hall'>" + "amenity=clock": "<i class='fa fa-clock-o' aria-hidden='true'></i>", + "amenity=drinking_water": "<img data-src='maki:drinking-water'>", + "amenity=embassy": "<img data-src='maki:embassy'>", + "amenity=public_building": "<img data-src='maki:building'>", + "amenity=recycling": "<img data-src='maki:recycling'>", + "amenity=toilets": "<img data-src='maki:toilet'>", + "amenity=townhall": "<img data-src='maki:town-hall'>", + "office=administration": "<img data-src='maki:town-hall'>", + "office=government": "<img data-src='maki:town-hall'>" } } diff --git a/railway-maxspeed.json b/railway-maxspeed.json new file mode 100644 index 0000000..1c756f2 --- /dev/null +++ b/railway-maxspeed.json @@ -0,0 +1,166 @@ +{ + "type": "overpass", + "name": { + "de": "Eisenbahn Höchstgeschwindigkeiten", + "en": "Railway Maxspeed", + "fr": "Limites de vitesse", + "hu": "Sebességkorlátozás", + "pt": "Velocidade máxima", + "pt-br": "Velocidade máxima" + }, + "query": { + "11": "way[railway=rail][railway!~'^(platform|abandoned|disused|station|proposed|subway_entrance)$'][usage~'^(main|branch)$'];", + "14": "way[railway][railway!~'^(platform|abandoned|disused|station|proposed|subway_entrance)$'];" + }, + "feature": { + "pre": [ + "{% set maxspeedKmh = null %}", + "{% set maxspeed = null %}", + "{% set unit = null %}", + "", + "{% if tags.maxspeed is defined %}", + " {% if tags.maxspeed|matches(\"^[0-9]+$\") %}", + " {% set maxspeedKmh = tags.maxspeed %}", + " {% set maxspeed = tags.maxspeed %}", + " {% set unit = \"km/h\" %}", + " {% elseif tags.maxspeed|matches( \"(^[0-9]+) mph$\") %}", + " {% set m = tags.maxspeed|matches(\"(^[0-9]+) mph$\") %}", + " {% set maxspeedKmh = m[1] * 1.60934 %}", + " {% set maxspeed = m[1] %}", + " {% set unit = \"mph\" %}", + " {% endif %}", + "{% endif %}", + "", + "{% if attribute(tags, 'maxspeed:forward') is defined %}", + " {% if attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+$\") %}", + " {% set maxspeedFKmh = attribute(tags, 'maxspeed:forward') %}", + " {% set maxspeedF = attribute(tags, 'maxspeed:forward') %}", + " {% set unit = \"km/h\" %}", + " {% elseif attribute(tags, 'maxspeed:forward')|matches(\"^[0-9]+ mph$\") %}", + " {% set m = attribute(tags, 'maxspeed:forward')|matches(\"(^[0-9]+) mph$\") %}", + " {% set maxspeedFKmh = m[1] * 1.60934 %}", + " {% set maxspeedF = m[1] %}", + " {% set unit = \"mph\" %}", + " {% endif %}", + "{% endif %}", + "", + "{% if attribute(tags, 'maxspeed:backward') is defined %}", + " {% if attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+$\") %}", + " {% set maxspeedBKmh = attribute(tags, 'maxspeed:backward') %}", + " {% set maxspeedB = attribute(tags, 'maxspeed:backward') %}", + " {% set unit = \"km/h\" %}", + " {% elseif attribute(tags, 'maxspeed:backward')|matches(\"^[0-9]+ mph$\") %}", + " {% set m = attribute(tags, 'maxspeed:backward')|matches(\"(^[0-9]+) mph$\") %}", + " {% set maxspeedBKmh = m[1] * 1.60934 %}", + " {% set maxspeedB = m[1] %}", + " {% set unit = \"mph\" %}", + " {% endif %}", + "{% endif %}", + "", + "{% if not maxspeedKmh %}", + "{% set color = \"#404040\" %}", + "{% else %}", + "{% set color = colorInterpolate(const.colorMap, (maxspeedKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}", + "{% endif %}", + "", + "{% if maxspeedFKmh %}", + "{% set colorF = colorInterpolate(const.colorMap, (maxspeedFKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}", + "{% endif %}", + "", + "{% if maxspeedBKmh %}", + "{% set colorB = colorInterpolate(const.colorMap, (maxspeedBKmh - const.offsetColorSpeed) / const.highestColorSpeed) %}", + "{% endif %}" + ], + "description": [ + "{% if maxspeedF or maxspeedB %}", + "<span style='color: {{ colorB }}'>{{ maxspeedB|default(trans('unknown')) }}</span> / <span style='color: {{ colorF }}'>{{ maxspeedF|default(trans('unknown')) }}</span> {{ unit }}", + "{% elseif maxspeed %}", + "<span style='color: {{ color }}'>{{ maxspeed }} {{ unit }}</span>", + "{% elseif tags.maxspeed %}", + "{{ tags.maxspeed }}", + "{% else %}", + "{{ trans('unknown') }}", + "{% endif %}" + ], + "markerSymbol": null, + "listMarkerSymbol": "line", + "styles": "{% if maxspeedB or maxspeedF %}left,right,default{% else %}default{% endif %}", + "style": { + "width": "{% if maxspeedB or maxspeedF %}0{% else %}4{% endif %}", + "color": "{{ color }}", + "text": [ + "{% if maxspeedB or maxspeedF %}", + " {% if maxspeedB %}🡸 {{ maxspeedB }} {% endif %}|{% if maxspeedF %} {{ maxspeedF }} 🡺{% endif %} ", + "{% else %}", + " {{ maxspeed }} ", + "{% endif %}" + ], + "textRepeat": "1", + "textOffset": "4", + "textFontWeight": "bold" + }, + "style:left": { + "width": "2", + "color": "{{ colorB|default('#404040') }}", + "offset": "-1" + }, + "style:right": { + "width": "2", + "color": "{{ colorF|default('#404040') }}", + "offset": "1" + } + }, + "const": { + "colorMap": [ + "#00af00", + "#ff7f00", + "#ff0000", + "#af00af" + ], + "highestColorSpeed": 300, + "offsetColorSpeed": 20 + }, + "info": [ + "<div style='display: inline-block'>", + "<table>", + " <tr>", + " <td>{{ markerLine(evaluate({}))|raw }}</td>", + " <td colspan>{{ trans('unknown') }}</td>", + " </tr>", + "{% for i in range(25, 280, 25) %}", + " <tr>", + " <td>{{ markerLine(evaluate({ \"maxspeed\": i }))|raw }}</td>", + " <td>{{ i }}km/h</td>", + " </tr>", + "{% endfor %}", + " <tr>", + " <td>{{ markerLine(evaluate({ \"maxspeed\": 300 }))|raw }}</td>", + " <td>≥300km/h</td>", + " </tr>", + "</table>", + "</div>", + "", + "<div style='display: inline-block'>", + "<table>", + " <tr>", + " <td>{{ markerLine(evaluate({}))|raw }}</td>", + " <td colspan>{{ trans('unknown') }}</td>", + " </tr>", + "{% for i in range(15, 150, 15) %}", + " <tr>", + " <td>{{ markerLine(evaluate({ \"maxspeed\": (i * 1.60934)|round }))|raw }}</td>", + " <td>{{ i }}mph</td>", + " </tr>", + "{% endfor %}", + " <tr>", + " <td>{{ markerLine(evaluate({ \"maxspeed\": (175 * 1.60934)|round }))|raw }}</td>", + " <td>175mph</td>", + " </tr>", + " <tr>", + " <td>{{ markerLine(evaluate({ \"maxspeed\": (200 * 1.60934)|round }))|raw }}</td>", + " <td>≥200mph</td>", + " </tr>", + "</table>", + "</div>" + ] +} diff --git a/railway-routes.json b/railway-routes.json index 8745895..f06a1d3 100644 --- a/railway-routes.json +++ b/railway-routes.json @@ -51,7 +51,7 @@ "color": "{{ color }}", "width": 4, "opacity": 1, - "text": "{{ refs|join(' ') }} ", + "text": "{{ refs|join(' · ') }} ", "textRepeat": "1", "textOffset": "12", "textFontWeight": "bold" diff --git a/religion.json b/religion.json index 967b59e..b3e2c5a 100644 --- a/religion.json +++ b/religion.json @@ -27,6 +27,19 @@ "way[landuse~\"^(cemetery)$\"];", "relation[landuse~\"^(cemetery)$\"];", ")" + ], + "14": [ + "(", + "node[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];", + "way[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];", + "relation[amenity~\"^(place_of_worship|grave_yard|crematorium)$\"];", + "way[landuse~\"^(cemetery)$\"];", + "relation[landuse~\"^(cemetery)$\"];", + "node[historic~\"^wayside_(cross|shrine|chapel)$\"];", + "way[historic~\"^wayside_(cross|shrine|chapel)$\"];", + "relation[historic~\"^wayside_(cross|shrine|chapel)$\"];", + "nwr[office~\"^(parish|religion)$\"];", + ")" ] }, "feature": { @@ -34,6 +47,12 @@ "{% if tags.landuse == 'cemetery' %}", "{% set key = 'landuse' %}", "{% set value = tags.landuse %}", + "{% 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/renewables.json b/renewables.json new file mode 100644 index 0000000..19e9f42 --- /dev/null +++ b/renewables.json @@ -0,0 +1,40 @@ +{ + "type": "overpass", + "name": { + "de": "Erneuerbare Energien", + "en": "Renewables", + "fr": "Énergies renouvelables", + "hu": "Megújuló energia", + "pt-br": "Renováveis" + }, + "query": { + "11": [ + "(", + "node[power~\"^(plant)$\"][\"plant:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "way[power~\"^(plant)$\"][\"plant:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "relation[power~\"^(plant)$\"][\"plant:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + ")", + "" + ], + "15": [ + "(", + "node[power~\"^(plant)$\"][\"plant:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "way[power~\"^(plant)$\"][\"plant:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "relation[power~\"^(plant)$\"][\"plant:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "node[power~\"^(generator)$\"][\"generator:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "way[power~\"^(generator)$\"][\"generator:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + "relation[power~\"^(generator)$\"][\"generator:source\"~\"^(wind|solar|biomass|hydro|geothermal|biogas|biofuel)$\"];", + ")" + ] + }, + "feature": { + "description": "{{ tagTrans('power', tags.power) }}{% set x='generator:source' %}{% if tags[x] %}, {{ tagTransList('generator:source', tags[x]) }}{% endif %}", + "popupDescription": "{{ tagTrans('power', tags.power) }}", + "body": [ + "{% set x='generator:source' %}{% if tags[x] %}<br/>{{ keyTrans('generator:source') }}: {{ tagTransList('generator:source', tags[x]) }}{% endif %}", + "{% set x='generator:method' %}{% if tags[x] %}<br/>{{ keyTrans('generator:method') }}: {{ tagTransList('generator:method', tags[x]) }}{% endif %}", + "{% set x='generator:type' %}{% if tags[x] %}<br/>{{ tagTransList('generator:type') }}: {{ tagTrans('generator:type', tags[x]) }}{% endif %}" + ], + "priority": "{% if tags.power == 'plant' %}0{% elseif tags.power == 'generator' or tags.power == 'line' %}1{% elseif tags.power == 'substation' %}2{% else %}3{% endif %}" + } +} diff --git a/residential.json b/residential.json index 9bacc7d..d58ed9e 100644 --- a/residential.json +++ b/residential.json @@ -35,6 +35,12 @@ ] }, "feature": { - "description": "{{ tagTrans('landuse', tags.landuse) }}" + "description": [ + "{{ tagTrans('landuse', tags.landuse) }}", + "", + "{% if tags.residential %}", + "({{ tagTransList('residential', tags.residential) }})", + "{% endif %}" + ] } } diff --git a/swimming_bathing.json b/swimming_bathing.json new file mode 100644 index 0000000..def3505 --- /dev/null +++ b/swimming_bathing.json @@ -0,0 +1,143 @@ +{ + "type": "overpass", + "name": { + "de": "Schwimmen und Baden", + "en": "Swimming and bathing", + "fr": "Natation, baignade et bains", + "hu": "Fürdőzés, úszás", + "pt-br": "Natação e banho" + }, + "query": { + "13": [ + "(", + "nwr[leisure=swimming_area];", + "nwr[natural~\"^(water)\"][sport~\"^(|.*;)swimming(.*|)$\"];", + "nwr[natural~\"^(beach)\"];", + "nwr[leisure~\"^(water_park|beach_resort)$\"];", + "nwr[leisure=sports_centre][sport~\"^(|.*;)swimming(.*|)$\"];", + "nwr[amenity=public_bath];", + "nwr[tourism=spa_resort];", + ")" + ], + "16": [ + "(", + "nwr[leisure=swimming_area];", + "nwr[natural~\"^(water)\"][sport~\"^(|.*;)swimming(.*|)$\"];", + "nwr[natural~\"^(beach)\"];", + "nwr[leisure~\"^(water_park|beach_resort)$\"];", + "nwr[leisure=sports_centre][sport~\"^(|.*;)swimming(;.*|)$\"];", + "nwr[amenity~\"^(public_bath|shower)$\"];", + "nwr[tourism=spa_resort];", + "", + "nwr[leisure=swimming_pool][access!=private];", + "nwr[leisure=sauna];", + ")" + ] + }, + "feature": { + "pre": [ + "{% set k = null %}{% set v = null %}{% set append = null %}", + "{% if tags.amenity == 'public_bath' %}", + " {% set k = 'amenity' %}", + " {% set v = 'public_bath' %}", + " {% if attribute(tags, 'bath:type') %}{% set append = tagTrans('bath:type', attribute(tags, 'bath:type')) %}{% endif %}", + "{% elseif tags.amenity == 'shower' %}", + " {% set k = 'amenity' %}", + " {% set v = 'shower' %}", + "{% elseif tags.tourism == 'spa_resort' %}", + " {% set k = 'tourism' %}", + " {% set v = tags.tourism %}", + "{% elseif tags.leisure == 'sauna' %}", + " {% set k = 'leisure' %}", + " {% set v = tags.leisure %}", + " {% if tags.sauna and tags.sauna != 'yes' %}{% set append = tagTransList('sauna', tags.sauna) %}{% endif %}", + "{% elseif tags.leisure == 'sports_centre' %}", + " {% set k = 'leisure' %}", + " {% set v = tags.leisure %}", + " {% set append = tagTrans('sport', 'swimming') %}", + "{% elseif tags.leisure %}", + " {% set k = 'leisure' %}", + " {% set v = tags.leisure %}", + "{% elseif tags.natural %}", + " {% set k = 'natural' %}", + " {% set v = tags.natural %}", + " {% if tags.sport %}{% set append = tagTrans('sport', 'swimming') %}{% endif %}", + "{% endif %}" + ], + "description": [ + "{{ tagTrans(k, v) }}", + "{% if append %}({{ append }}){% endif %}" + ], + "markerSign": "{{ const[k ~ '=' ~ v].sign|raw }}", + "priority": "{% if tags.name %}0{% else %}1{% endif %}" + }, + "info": [ + "<table>", + "{% for value, data in const %}", + "{% if data.zoom <= map.zoom %}", + " <tr>", + " <td>{{ markerCircle({})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>", + " <td title=\"{% if data.taginfo %}{{ data.taginfo }}{% else %}{{ value }}{% endif %}\">", + " {{ keyTrans(value) }}", + " {% if data.append %}({{ trans(data.append) }}){% endif %}", + " </td>", + " </tr>", + "{% endif %}", + "{% endfor %}", + "</table>" + ], + "const": { + "leisure=swimming_area": { + "zoom": 13, + "sign": "<img data-src='maki:swimming?size=11&fill=blue'>" + }, + "leisure=water_park": { + "zoom": 13, + "sign": "<img data-src='maki:swimming'>" + }, + "leisure=beach_resort": { + "zoom": 13, + "sign": "<img data-src='temaki:beach'>" + }, + "leisure=sports_centre": { + "zoom": 13, + "append": "tag:sport=swimming", + "taginfo": "leisure=swimming_area, sport=swimming", + "sign": "<img data-src='maki:basketball'>" + }, + "natural=water": { + "zoom": 13, + "append": "tag:sport=swimming", + "taginfo": "natural=water, sport=swimming", + "sign": "<i style='color: blue' class=\"fas fa-water\"></i>" + }, + "natural=beach": { + "zoom": 13, + "sign": "<img data-src='temaki:beach?fill=green'>" + }, + "amenity=public_bath": { + "zoom": 13, + "taginfo": "amenity=public_bath, bath:type=*", + "sign": "<i class=\"fa fa-bath\" style='color: black' aria-hidden=\"true\"></i>" + }, + "tourism=spa_resort": { + "zoom": 13, + "sign": "<i class=\"fa fa-bath\" style='color: blue' aria-hidden=\"true\"></i>" + }, + "leisure=swimming_pool": { + "zoom": 16, + "append": "tag:access!=private", + "taginfo": "leisure=swimming_pool, access!=private", + "sign": "<i style='font-size: 80%; color: black;' class='fas fa-swimming-pool'></i>" + }, + "leisure=sauna": { + "zoom": 16, + "taginfo": "leisure=sauna, sauna:type=*", + "sign": "<i class=\"fa fa-thermometer-full\" aria-hidden=\"true\"></i>" + }, + "amenity=shower": { + "zoom": 16, + "sign": "🚿 " + } + } +} 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": "<img src='maki:attraction'>", + "attraction": "<img data-src='maki:attraction'>", "gallery": "🖼", - "museum": "<img src='maki:museum'>", - "picnic_site": "<img src='maki:picnic-site'>", - "theme_park": "<img src='maki:amusement-park'>", - "viewpoint": "<i class='fa fa-eye' aria-hidden='true'></i>", + "museum": "<img data-src='maki:museum'>", + "picnic_site": "<img data-src='maki:picnic-site'>", + "theme_park": "<img data-src='maki:amusement-park'>", + "viewpoint": "<i class='fas fa-eye' aria-hidden='true'></i>", "zoo": "🦁" } } diff --git a/tourism_services.json b/tourism_services.json index 721916e..4901f18 100644 --- a/tourism_services.json +++ b/tourism_services.json @@ -8,13 +8,13 @@ "en": "Tourism", "et": "Turism", "fr": "Tourisme", - "hu": "Turisztikai szolgáltatások", + "hu": "Szálláshelyek, turisztikai információk", "it": "Turismo", "ja": "観光", "nl": "Toerisme", "pl": "Turystyka", "pt": "Turismo", - "pt-br": "Serviços de turismo", + "pt-br": "Serviços turísticos", "ro": "Turism", "ru": "Туризм", "uk": "Туризм" @@ -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|camping)$\"];", ")" ], "16": [ @@ -32,67 +33,111 @@ "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|camping)$\"];", ")" ] }, "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": [ "<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('tourism', 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": { - "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": "<i class=\"fas fa-info-circle\"></i>", + "zoom": 13 + }, + "office=guide": { + "sign": "<i class=\"fas fa-flag\"></i>", + "zoom": 13 + }, + "office=tourist_accommodation": { + "sign": "🛌", + "zoom": 13 + }, + "office=camping": { + "sign": "⛺", + "zoom": 13 + }, + "tourism=information": { "sign": "ℹ️", "zoom": 16 } diff --git a/transport_alternative.json b/transport_alternative.json index 32278c7..8736ab1 100644 --- a/transport_alternative.json +++ b/transport_alternative.json @@ -4,7 +4,7 @@ "cs": "Alternativní (Cyklistika, Pěší turistika, ...)", "el": "Εναλλακτικά (ποδηλασία, ορειβασία,...)", "et": "Alternatiivne (jalgrattasõit, matkamine, ...)", - "fr": "Alternatif (Cyclisme, Randonnée, ...)", + "fr": "Alternatif (cyclisme, randonnée, ...)", "hu": "Alternatív (Kerékpár, Túra)", "it": "Alternativi (bicicletta, camminate, ...)", "ja": "その他交通 (サイクリング、ハイキング、...)", diff --git a/xmas.json b/xmas.json new file mode 100644 index 0000000..ed0f023 --- /dev/null +++ b/xmas.json @@ -0,0 +1,95 @@ +{ + "type": "overpass", + "name": { + "de": "Weihnachten", + "en": "Christmas", + "fr": "Noël", + "hu": "Karácsony", + "pt-br": "Natal" + }, + "query": { + "13": [ + "(", + "node[\"xmas:feature\"];", + "way[\"xmas:feature\"];", + "relation[\"xmas:feature\"];", + ")" + ] + }, + "feature": { + "pre": [ + "{% set isCurrent = meta.timestamp >= \"now\"|date_modify('-10 month')|date('Y') %}", + "{% set bgColor = isCurrent ? '#f2756a' : 'red' %}" + ], + "title": "{{ attribute(tags, \"xmas:name\")|default(trans(\"unnamed\")) }}", + "description": "{{ tagTransList(\"xmas:feature\", attribute(tags, \"xmas:feature\")) }}", + "body": [ + "{% if not isCurrent %}", + "<div style='border: 1px solid red; padding: 2px; margin-bottom: 2px;'>{{ repoTrans('xmas:outdated-warning') }}</div>", + "{% endif %}", + "", + "{% if attribute(tags, 'xmas:location') %}", + "<li class='hasSymbol'>", + " <i class=\"fa fa-globe\" aria-hidden=\"true\"></i>", + " <span class='key'>{{ keyTrans('location') }}:</span>", + " <span class='value'>", + " {{ attribute(tags, 'xmas:location') }}", + " </span>", + "</li>", + "{% endif %}", + "", + "{% if attribute(tags, 'xmas:day_date') %}", + "<li class='hasSymbol'>", + " <i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i>", + " <span class='key'>Open:</span>", + " <span class='value'>", + " {{ attribute(tags, 'xmas:day_date') }}", + " </span>", + "</li>", + "{% endif %}", + "", + "{% if attribute(tags, 'xmas:opening_hours') %}", + "<li class='hasSymbol'>", + " <i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i>", + " <span class='key'>{{ keyTrans('opening_hours') }}:</span>", + " <span class='value'>", + " {{ attribute(tags, 'xmas:opening_hours') }}", + " </span>", + "</li>", + "{% endif %}", + "", + "{% if attribute(tags, 'xmas:url') %}", + "<li class='hasSymbol'>", + " <i class=\"fa fa-globe\" aria-hidden=\"true\"></i>", + " <span class='key'>{{ keyTrans('website') }}:</span>", + " <span class='value'>", + " <a target='_blank' href='{{ attribute(tags, 'xmas:url')|websiteUrl }}'>{{ attribute(tags, 'xmas:url') }}</a>", + " </span>", + "</li>", + "{% endif %}" + ], + "markerSign": "{{ attribute(const, attribute(tags, 'xmas:feature'))|raw }}", + "markerSymbol": "{{ markerPointer({\"fillColor\":bgColor})|raw }}", + "listMarkerSymbol": "{{ markerCircle({\"fillColor\":bgColor})|raw }}" + }, + "const": { + "market": "<img data-src='maki:commercial'>", + "tree": "<i class=\"fa fa-tree\" aria-hidden=\"true\"></i>", + "shop": "<i class=\"fa fa-shopping-basket\" aria-hidden=\"true\"></i>", + "event": "<img data-src='maki:amusement-park'>" + }, + "info": [ + "<table>", + "{% for value, icon in const %}", + " <tr>", + " <td>{{ markerCircle({})|raw }}<div class='sign'>{{ icon|raw }}</div></td>", + " <td>{{ tagTrans('xmas:feature', value) }}</td>", + " </tr>", + "{% endfor %}", + " <tr>", + " <td>{{ markerCircle({\"fillColor\":\"red\"})|raw }}</td>", + " <td>{{ repoTrans('outdated feature') }}</td>", + " </tr>", + "</table>" + ] +}