diff --git a/car_routes.json b/car_routes.json
index a31247e8..d1c7734c 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"
},
diff --git a/children.json b/children.json
index e814ed10..69fc9134 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 @@
" ",
"
",
" {{ markerCircle({})|raw }} 🚽🚼 | ",
- " {{ tagTrans('amenity', 'toilets') }} with diaper changing table | ",
+ " {{ tagTrans('amenity', 'toilets diaper=yes') }} | ",
"
",
""
]
diff --git a/coal.json b/coal.json
index 3cc7137d..d084cae2 100644
--- a/coal.json
+++ b/coal.json
@@ -2,7 +2,9 @@
"type": "overpass",
"name": {
"de": "Kohle",
- "en": "Coal"
+ "en": "Coal",
+ "fr": "Charbon",
+ "pt-br": "Carvão"
},
"query": {
"11": [
diff --git a/cycle_routes.json b/cycle_routes.json
index 3844eec1..828dfaf7 100644
--- a/cycle_routes.json
+++ b/cycle_routes.json
@@ -21,6 +21,12 @@
"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 %}",
"styles": "",
+ "style:hover": {
+ "width": 0
+ },
+ "style:selected": {
+ "width": 0
+ },
"markerSymbol": ""
},
"memberFeature": {
@@ -28,6 +34,10 @@
"{% 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 @@
""
],
"listExclude": "1",
+ "styles": "default{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}",
"style": {
"color": "{{ const[network].color }}",
- "width": 4,
+ "width": "4",
+ "dashArray": "{% if not dirForward or not dirBackward %}27,8{% endif %}",
+ "dashOffset": "{% if dirBackward %}28{% else %}0{% endif %}",
+ "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}",
+ "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}",
"opacity": 1,
"text": "{{ refs|join(' · ') }} ",
"textRepeat": "1",
"textOffset": "12",
- "textFontWeight": "bold"
+ "textFontWeight": "bold",
+ "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}",
+ "pattern-pixelSize": "9",
+ "pattern-repeat": "35",
+ "pattern-offset": "{% if dirBackward %}4{% else %}30.5{% endif %}",
+ "pattern-polygon": "true",
+ "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}",
+ "pattern-path-width": "0",
+ "pattern-path-fillOpacity": "1",
+ "pattern-path-color": "{{ const[network].color }}"
+ },
+ "style:hover": {
+ "pane": "hover",
+ "width": "4",
+ "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}",
+ "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}",
+ "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}",
+ "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}",
+ "color": "black",
+ "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}",
+ "pattern-pixelSize": "9",
+ "pattern-repeat": "35",
+ "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}",
+ "pattern-polygon": "true",
+ "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}",
+ "pattern-path-width": "0",
+ "pattern-path-fillOpacity": "1",
+ "pattern-path-color": "black"
+ },
+ "style:selected": {
+ "pane": "selected",
+ "width": "4",
+ "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}",
+ "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}",
+ "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}",
+ "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}",
+ "color": "#3f3f3f",
+ "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}",
+ "pattern-pixelSize": "9",
+ "pattern-repeat": "35",
+ "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}",
+ "pattern-polygon": "true",
+ "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}",
+ "pattern-path-width": "0",
+ "pattern-path-fillOpacity": "1",
+ "pattern-path-color": "#3f3f3f"
}
},
"const": {
diff --git a/electric_power.json b/electric_power.json
index ce31be5a..e2cee976 100644
--- a/electric_power.json
+++ b/electric_power.json
@@ -6,13 +6,13 @@
"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/index.json b/index.json
index 2fbd6b82..77bd73e4 100644
--- a/index.json
+++ b/index.json
@@ -46,6 +46,9 @@
},
{
"id": "outdoor"
+ },
+ {
+ "id": "swimming_bathing"
}
]
},
@@ -86,6 +89,9 @@
{
"id": "communication"
},
+ {
+ "id": "office"
+ },
{
"id": "financial"
},
@@ -254,12 +260,17 @@
"type": "index",
"name": {
"en": "Energy",
- "de": "Energie"
+ "de": "Energie",
+ "pt-br": "Energia",
+ "fr": "Énergie"
},
"subCategories": [
{
"id": "electric_power"
},
+ {
+ "id": "power_routes"
+ },
{
"id": "coal"
},
@@ -338,6 +349,9 @@
},
{
"id": "wikipedia"
+ },
+ {
+ "id": "xmas"
}
]
}
diff --git a/lang/ast.json b/lang/ast.json
index a5e172fe..5439d69f 100644
--- a/lang/ast.json
+++ b/lang/ast.json
@@ -36,6 +36,7 @@
"category:military": "Militar",
"category:mtb-routes": "",
"category:natural": "Formaciones naturales",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Otres",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Llugares",
"category:playgrounds": "Xuegos infantiles",
"category:post": "Corréu",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Paraes y estaciones",
@@ -62,6 +64,7 @@
"category:shop": "Compres",
"category:special": "",
"category:sport": "Deportes",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turismu",
"category:tourism_services": "Turismu",
"category:transport": "Tresporte",
@@ -74,5 +77,6 @@
"category:waste": "Basures",
"category:water": "",
"category:wikipedia": "",
- "category:works": "Fábriques"
+ "category:works": "Fábriques",
+ "category:xmas": ""
}
diff --git a/lang/ca.json b/lang/ca.json
index 9a95a3e1..2b4a38df 100644
--- a/lang/ca.json
+++ b/lang/ca.json
@@ -36,6 +36,7 @@
"category:military": "",
"category:mtb-routes": "",
"category:natural": "",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "",
@@ -62,6 +64,7 @@
"category:shop": "",
"category:special": "",
"category:sport": "",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "",
"category:tourism_services": "",
"category:transport": "",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/cs.json b/lang/cs.json
index 316a8e55..ac91fbc3 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -36,6 +36,7 @@
"category:military": "Vojenské",
"category:mtb-routes": "",
"category:natural": "Přírodní úkazy",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Jiné",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Sídla",
"category:playgrounds": "Hřiště",
"category:post": "Poštovní služby",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Zastávky & Stanice",
@@ -62,6 +64,7 @@
"category:shop": "Obchody",
"category:special": "",
"category:sport": "Sport",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turistika",
"category:tourism_services": "Turistika",
"category:transport": "Doprava",
@@ -74,5 +77,6 @@
"category:waste": "Nakládání s odpady",
"category:water": "",
"category:wikipedia": "",
- "category:works": "Továrny"
+ "category:works": "Továrny",
+ "category:xmas": ""
}
diff --git a/lang/de.json b/lang/de.json
index 2a770098..8056518e 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -36,6 +36,7 @@
"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:other": "Andere",
"category:outdoor": "Freiluftaktivitäten",
@@ -44,6 +45,7 @@
"category:places_geo": "Orte",
"category:playgrounds": "Spielplätze",
"category:post": "Post",
+ "category:power_routes": "",
"category:pt": "ÖV Karte",
"category:pt:routes": "Routen",
"category:pt:stops": "Haltestellen",
@@ -62,6 +64,7 @@
"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",
@@ -74,5 +77,6 @@
"category:waste": "Entsorgung",
"category:water": "Gewässer",
"category:wikipedia": "Wikipedia",
- "category:works": "Fabriken"
+ "category:works": "Fabriken",
+ "category:xmas": ""
}
diff --git a/lang/el.json b/lang/el.json
index 97c3dc66..6daf1ec0 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -36,6 +36,7 @@
"category:military": "Στρατιωτικό",
"category:mtb-routes": "",
"category:natural": "Φυσικοί Σχηματισμοί",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Μέρη",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Στάσεις & Σταθμοί",
@@ -62,6 +64,7 @@
"category:shop": "Αγορές",
"category:special": "",
"category:sport": "Άθληση",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Τουρισμός",
"category:tourism_services": "Τουρισμός",
"category:transport": "Μεταφορές",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/en.json b/lang/en.json
index 153aea4a..8d7fa635 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -36,6 +36,7 @@
"category:military": "Military",
"category:mtb-routes": "Mountain bike routes",
"category:natural": "Natural Formations",
+ "category:office": "Offices",
"category:oil_gas": "Petroleum and natural gas",
"category:other": "Other",
"category:outdoor": "Outdoor activities",
@@ -44,6 +45,7 @@
"category:places_geo": "Places",
"category:playgrounds": "Playground",
"category:post": "Post",
+ "category:power_routes": "Power routes",
"category:pt": "Public transport map",
"category:pt:routes": "Routes",
"category:pt:stops": "Stops & Stations",
@@ -62,6 +64,7 @@
"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",
@@ -74,5 +77,6 @@
"category:waste": "Disposal",
"category:water": "Waterbodies",
"category:wikipedia": "Wikipedia",
- "category:works": "Works"
+ "category:works": "Works",
+ "category:xmas": "Christmas"
}
diff --git a/lang/es.json b/lang/es.json
index b13fced3..75245e17 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -36,6 +36,7 @@
"category:military": "",
"category:mtb-routes": "",
"category:natural": "",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Paradas y estaciones",
@@ -62,6 +64,7 @@
"category:shop": "",
"category:special": "",
"category:sport": "",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "",
"category:tourism_services": "",
"category:transport": "",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/et.json b/lang/et.json
index e6474410..e8985de6 100644
--- a/lang/et.json
+++ b/lang/et.json
@@ -36,6 +36,7 @@
"category:military": "",
"category:mtb-routes": "",
"category:natural": "",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Ülejäänud",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Kohad",
"category:playgrounds": "Mänguväljak",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "",
@@ -62,6 +64,7 @@
"category:shop": "Ostmine",
"category:special": "",
"category:sport": "",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turism",
"category:tourism_services": "Turism",
"category:transport": "Transport",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/fr.json b/lang/fr.json
index 784d81c9..59026796 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -7,9 +7,9 @@
"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": "",
+ "category:coal": "Charbon",
"category:communication": "Communication",
"category:construction": "Constructions",
"category:craft": "Artisanat",
@@ -18,9 +18,9 @@
"category:cycle_amenities": "Équipements vélo",
"category:cycle_routes": "Itinéraires vélo",
"category:education": "Éducation",
- "category:electric_power": "Énergie",
+ "category:electric_power": "Production/transport électrique",
"category:emergency": "Services d'urgence",
- "category:energy": "",
+ "category:energy": "Énergie",
"category:financial": "Finance",
"category:gastro": "Restauration",
"category:gastro-smoking": "Restauration sans tabac",
@@ -32,11 +32,12 @@
"category:internet": "Internet",
"category:leisure": "Loisirs",
"category:leisure_sport_shopping": "Loisirs",
- "category:memorial": "",
+ "category:memorial": "Mémoriaux",
"category:military": "Militaire",
"category:mtb-routes": "Itinéraires de VTT",
"category:natural": "Éléments naturels",
- "category:oil_gas": "",
+ "category:office": "Bureaux",
+ "category:oil_gas": "Pétrole et gaz naturel",
"category:other": "Autres",
"category:outdoor": "Activités de plein air",
"category:phone": "Téléphone",
@@ -44,7 +45,8 @@
"category:places_geo": "Lieux",
"category:playgrounds": "Jeux pour enfants",
"category:post": "",
- "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",
@@ -55,13 +57,14 @@
"category:railway-maxspeed": "Limites de vitesse",
"category:railway-routes": "Lignes ferroviaires",
"category:religion": "Religion",
- "category:renewables": "",
+ "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/Bains",
"category:tourism_attractions": "Tourisme",
"category:tourism_services": "Tourisme",
"category:transport": "Transports",
@@ -74,5 +77,6 @@
"category:waste": "Déchets/Recyclage",
"category:water": "Hydrographie",
"category:wikipedia": "Wikipédia",
- "category:works": "Zones industrielles"
+ "category:works": "Zones industrielles",
+ "category:xmas": "Noël"
}
diff --git a/lang/hu.json b/lang/hu.json
index a673480c..b188f7ac 100644
--- a/lang/hu.json
+++ b/lang/hu.json
@@ -36,6 +36,7 @@
"category:military": "Katonai objektumok",
"category:mtb-routes": "Hegyikerékpáros útvonalak",
"category:natural": "Természeti képződmények",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Egyéb",
"category:outdoor": "Szabadtéri tevékenységek",
@@ -44,6 +45,7 @@
"category:places_geo": "Helyek",
"category:playgrounds": "Játszóterek",
"category:post": "Posta",
+ "category:power_routes": "",
"category:pt": "Tömegközlekedési térkép",
"category:pt:routes": "Útvonalak",
"category:pt:stops": "Megállók és állomások",
@@ -62,6 +64,7 @@
"category:shop": "Vásárlás",
"category:special": "Speciális",
"category:sport": "Sport",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Látnivalók",
"category:tourism_services": "Turisztikai szolgáltatások",
"category:transport": "Közlekedés",
@@ -74,5 +77,6 @@
"category:waste": "Hulladék",
"category:water": "Vizek",
"category:wikipedia": "Wikipédia",
- "category:works": "Üzemek"
+ "category:works": "Üzemek",
+ "category:xmas": ""
}
diff --git a/lang/it.json b/lang/it.json
index 1e54cd38..75dff968 100644
--- a/lang/it.json
+++ b/lang/it.json
@@ -36,6 +36,7 @@
"category:military": "Militare",
"category:mtb-routes": "",
"category:natural": "Natura",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Altri",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Luoghi",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Stazioni e fermate",
@@ -62,6 +64,7 @@
"category:shop": "Acquisti",
"category:special": "",
"category:sport": "Sport",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turismo",
"category:tourism_services": "Turismo",
"category:transport": "Trasporti",
@@ -74,5 +77,6 @@
"category:waste": "Smaltimento",
"category:water": "",
"category:wikipedia": "",
- "category:works": "Fabbriche"
+ "category:works": "Fabbriche",
+ "category:xmas": ""
}
diff --git a/lang/ja.json b/lang/ja.json
index 6f92a3bf..01be5468 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -36,6 +36,7 @@
"category:military": "軍事",
"category:mtb-routes": "",
"category:natural": "自然地層",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "その他",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "場所",
"category:playgrounds": "",
"category:post": "郵便",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "停留所と駅",
@@ -62,6 +64,7 @@
"category:shop": "ショッピング",
"category:special": "",
"category:sport": "スポーツ",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "観光",
"category:tourism_services": "観光",
"category:transport": "輸送",
@@ -74,5 +77,6 @@
"category:waste": "処理場",
"category:water": "",
"category:wikipedia": "",
- "category:works": "工場"
+ "category:works": "工場",
+ "category:xmas": ""
}
diff --git a/lang/nl.json b/lang/nl.json
index a7ca08ee..39911ad2 100644
--- a/lang/nl.json
+++ b/lang/nl.json
@@ -36,6 +36,7 @@
"category:military": "Militair",
"category:mtb-routes": "",
"category:natural": "Natuurlijke Formaties",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Andere",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Plaatsen",
"category:playgrounds": "",
"category:post": "Post",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Haltes en Stations",
@@ -62,6 +64,7 @@
"category:shop": "Winkelen",
"category:special": "",
"category:sport": "Sport",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Toerisme",
"category:tourism_services": "Toerisme",
"category:transport": "Vervoer",
@@ -74,5 +77,6 @@
"category:waste": "Afvalverwijdering",
"category:water": "",
"category:wikipedia": "",
- "category:works": "Fabrieken"
+ "category:works": "Fabrieken",
+ "category:xmas": ""
}
diff --git a/lang/pl.json b/lang/pl.json
index fbce3f3f..b4709717 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -36,6 +36,7 @@
"category:military": "",
"category:mtb-routes": "",
"category:natural": "",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Miejsca",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Przystanki i Stacje",
@@ -62,6 +64,7 @@
"category:shop": "Zakupy",
"category:special": "",
"category:sport": "",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turystyka",
"category:tourism_services": "Turystyka",
"category:transport": "Transport",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/pt-br.json b/lang/pt-br.json
index e0fa41fc..04af446a 100644
--- a/lang/pt-br.json
+++ b/lang/pt-br.json
@@ -9,7 +9,7 @@
"category:car_maxspeed": "Velocidade máxima",
"category:car_routes": "Rotas rodoviárias",
"category:children": "Equipamentos infantis",
- "category:coal": "",
+ "category:coal": "Carvão",
"category:communication": "Comunicação",
"category:construction": "Terrenos vazios e obras",
"category:craft": "Ofícios",
@@ -18,9 +18,9 @@
"category:cycle_amenities": "Equipamentos",
"category:cycle_routes": "Ciclorrotas",
"category:education": "Educação",
- "category:electric_power": "Energia",
+ "category:electric_power": "Energia elétrica",
"category:emergency": "Emergência",
- "category:energy": "",
+ "category:energy": "Energia",
"category:financial": "Finanças",
"category:gastro": "Gastronomia",
"category:gastro-smoking": "Gastronomia sem fumo",
@@ -32,11 +32,12 @@
"category:internet": "Acesso à Internet",
"category:leisure": "Lazer",
"category:leisure_sport_shopping": "Lazer, esportes e compras",
- "category:memorial": "",
+ "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:oil_gas": "",
+ "category:office": "",
+ "category:oil_gas": "Petróleo e gás",
"category:other": "Outros",
"category:outdoor": "Atividades ao ar livre",
"category:phone": "Telefone",
@@ -44,6 +45,7 @@
"category:places_geo": "Lugares",
"category:playgrounds": "Parquinhos",
"category:post": "Correios",
+ "category:power_routes": "",
"category:pt": "Mapa de transporte público",
"category:pt:routes": "Rotas",
"category:pt:stops": "Paradas e estações",
@@ -55,13 +57,14 @@
"category:railway-maxspeed": "Velocidade máxima",
"category:railway-routes": "Rotas ferroviárias",
"category:religion": "Religião",
- "category:renewables": "",
+ "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": "",
"category:tourism_attractions": "Turismo",
"category:tourism_services": "Serviços de turismo",
"category:transport": "Mobilidade",
@@ -74,5 +77,6 @@
"category:waste": "Lixo",
"category:water": "Hidrografia",
"category:wikipedia": "Wikipédia",
- "category:works": "Fábricas"
+ "category:works": "Fábricas",
+ "category:xmas": ""
}
diff --git a/lang/pt.json b/lang/pt.json
index 64314ad9..ac5a8aa7 100644
--- a/lang/pt.json
+++ b/lang/pt.json
@@ -36,6 +36,7 @@
"category:military": "Militar",
"category:mtb-routes": "",
"category:natural": "Formações naturais",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Outros",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Lugares",
"category:playgrounds": "Parques infantis",
"category:post": "Correios",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "Rotas",
"category:pt:stops": "",
@@ -62,6 +64,7 @@
"category:shop": "Compras",
"category:special": "Especial",
"category:sport": "Desporto",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turismo",
"category:tourism_services": "Turismo",
"category:transport": "Transportes",
@@ -74,5 +77,6 @@
"category:waste": "Lixo",
"category:water": "Massas de água",
"category:wikipedia": "Wikipédia",
- "category:works": "Fábricas"
+ "category:works": "Fábricas",
+ "category:xmas": ""
}
diff --git a/lang/ro.json b/lang/ro.json
index 827c3298..857f9e06 100644
--- a/lang/ro.json
+++ b/lang/ro.json
@@ -36,6 +36,7 @@
"category:military": "Militar",
"category:mtb-routes": "",
"category:natural": "",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Altele",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Locuri",
"category:playgrounds": "Loc de joaca",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "",
@@ -62,6 +64,7 @@
"category:shop": "Cumpărături",
"category:special": "",
"category:sport": "",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Turism",
"category:tourism_services": "Turism",
"category:transport": "Transport",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/ru.json b/lang/ru.json
index 57ed5007..0d2c78d3 100644
--- a/lang/ru.json
+++ b/lang/ru.json
@@ -36,6 +36,7 @@
"category:military": "Вооружённые силы",
"category:mtb-routes": "",
"category:natural": "Природные образования",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Прочее",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Места",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Остановки и станции",
@@ -62,6 +64,7 @@
"category:shop": "Покупки",
"category:special": "",
"category:sport": "Спорт",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Туризм",
"category:tourism_services": "Туризм",
"category:transport": "Транспорт",
@@ -74,5 +77,6 @@
"category:waste": "Переработка отходов",
"category:water": "",
"category:wikipedia": "",
- "category:works": "Промышленность"
+ "category:works": "Промышленность",
+ "category:xmas": ""
}
diff --git a/lang/template.json b/lang/template.json
index 39c78d33..135ff395 100644
--- a/lang/template.json
+++ b/lang/template.json
@@ -36,6 +36,7 @@
"category:military": "",
"category:mtb-routes": "",
"category:natural": "",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "",
"category:playgrounds": "",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "",
@@ -62,6 +64,7 @@
"category:shop": "",
"category:special": "",
"category:sport": "",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "",
"category:tourism_services": "",
"category:transport": "",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/lang/uk.json b/lang/uk.json
index ae7ca298..cb3d073b 100644
--- a/lang/uk.json
+++ b/lang/uk.json
@@ -36,6 +36,7 @@
"category:military": "",
"category:mtb-routes": "",
"category:natural": "Природне середовище",
+ "category:office": "",
"category:oil_gas": "",
"category:other": "Інше",
"category:outdoor": "",
@@ -44,6 +45,7 @@
"category:places_geo": "Місцевість",
"category:playgrounds": "Дитячий майданчик",
"category:post": "",
+ "category:power_routes": "",
"category:pt": "",
"category:pt:routes": "",
"category:pt:stops": "Зупинки та станції",
@@ -62,6 +64,7 @@
"category:shop": "Торгівля",
"category:special": "",
"category:sport": "Спорт. Інше.",
+ "category:swimming_bathing": "",
"category:tourism_attractions": "Туризм",
"category:tourism_services": "Туризм",
"category:transport": "Транспорт",
@@ -74,5 +77,6 @@
"category:waste": "",
"category:water": "",
"category:wikipedia": "",
- "category:works": ""
+ "category:works": "",
+ "category:xmas": ""
}
diff --git a/memorial.json b/memorial.json
index 117785c5..4095a137 100644
--- a/memorial.json
+++ b/memorial.json
@@ -2,7 +2,9 @@
"type": "overpass",
"name": {
"de": "Denkmäler",
- "en": "Memorials"
+ "en": "Memorials",
+ "fr": "Mémoriaux",
+ "pt-br": "Memoriais"
},
"query": {
"11": [
diff --git a/mtb-routes.json b/mtb-routes.json
index 02d2c713..ffc26706 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]"
diff --git a/office.json b/office.json
new file mode 100644
index 00000000..c66872f3
--- /dev/null
+++ b/office.json
@@ -0,0 +1,45 @@
+{
+ "type": "overpass",
+ "name": {
+ "de": "Ämter, Dienst- und Geschäftsstellen",
+ "en": "Offices",
+ "fr": "Bureaux"
+ },
+ "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": "",
+ "company": "",
+ "estate_agent": "",
+ "insurance": "",
+ "lawyer": "",
+ "educational_institution": "",
+ "administrative": "",
+ "telecommunication": "",
+ "ngo": "",
+ "quango": "",
+ "association": "",
+ "it": "",
+ "accountant": "",
+ "tax_advisor": "",
+ "employment_agency": "",
+ "research": "",
+ "religion": "",
+ "architect": "",
+ "financial": "",
+ "newspaper": "",
+ "political_party": "",
+ "advertising_agency": "",
+ "therapist": "",
+ "travel_agent": "",
+ "publisher": ""
+ }
+}
diff --git a/oil_gas.json b/oil_gas.json
index 6dfaf039..d74a1dfc 100644
--- a/oil_gas.json
+++ b/oil_gas.json
@@ -2,7 +2,9 @@
"type": "overpass",
"name": {
"de": "Erdöl und Erdgas",
- "en": "Petroleum and natural gas"
+ "en": "Petroleum and natural gas",
+ "fr": "Pétrole et gaz naturel",
+ "pt-br": "Petróleo e gás"
},
"query": {
"11": [
@@ -23,7 +25,7 @@
")"
],
"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)(|;.*)$\"];",
diff --git a/power_routes.json b/power_routes.json
new file mode 100644
index 00000000..4405a20c
--- /dev/null
+++ b/power_routes.json
@@ -0,0 +1,64 @@
+{
+ "type": "overpass",
+ "name": {
+ "en": "Power routes",
+ "fr": "Réseaux électriques"
+ },
+ "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": [
+ "Routes
",
+ "",
+ "{% for master in masters %}",
+ " {% set _color = '#' ~ master.tags.operator|default('')|md5|slice(0, 6) %}",
+ " - ",
+ "
{{ markerLine({ width: 4, color: _color })|raw }}
",
+ " {% 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 %}",
+ " {{ master.tags.operator }}",
+ " ",
+ "{% endfor %}",
+ "
"
+ ],
+ "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 46451cf3..7ade18d4 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"
},
@@ -67,6 +68,12 @@
],
"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 }) %}",
@@ -118,25 +136,78 @@
"{% endfor %}",
""
],
- "styles": "{% if isStop and stopCount > 0 %}stop{% elseif isWay %}way{% else %}{% endif %}",
+ "styles": "{% if isStop and stopCount > 0 %}stop{% elseif isWay %}casing,way{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}{% endif %}",
"listStopsMarkerSign": null,
"listStopsMarkerSymbol": "{{ markerCircle({ width: 5, color: color, fillOpacity: '1', radius: 3 })|raw }}",
"listStopsExclude": "{{ not isStop or stopCount == 0 }}",
"listStopsTitle": "{% if tags %}{{ tags.name|default(stopName)|default(trans('unknown')) }}{% else %}{{ trans('loading') }}{% endif %}",
"listStopsDescription": "{{ refs|join(' · ') }}",
"listRoutesExclude": "true",
+ "markerSymbol": "{% if isStop and stopCount > 0 %}{% if hover or selected %}{{ markerPointer({ })|raw }}{% endif %}{% endif %}",
+ "markerSign": " ",
+ "style:stop": {
+ "color": "{{ color|default('#ff0000') }}",
+ "width": "4",
+ "radius": "3",
+ "zIndex": "1"
+ },
"style:way": {
- "width": "3",
"color": "{{ color|default('#ff0000') }}",
+ "width": "4",
+ "dashArray": "{% if not dirForward or not dirBackward %}27,8{% endif %}",
+ "dashOffset": "{% if dirBackward %}28{% else %}0{% endif %}",
+ "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}",
+ "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}",
+ "opacity": 1,
"text": "{{ refs|join(' · ') }} ",
"textRepeat": "1",
"textOffset": "12",
- "textFontWeight": "bold"
+ "textFontWeight": "bold",
+ "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}",
+ "pattern-pixelSize": "9",
+ "pattern-repeat": "35",
+ "pattern-offset": "{% if dirBackward %}4{% else %}30.5{% endif %}",
+ "pattern-polygon": "true",
+ "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}",
+ "pattern-path-width": "0",
+ "pattern-path-fillOpacity": "1",
+ "pattern-path-color": "{{ color|default('#ff0000') }}"
},
- "style:stop": {
- "width": "5",
- "color": "{{ color|default('#ff0000') }}",
- "radius": "3"
+ "style:hover": {
+ "pane": "hover",
+ "width": "4",
+ "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}",
+ "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}",
+ "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}",
+ "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}",
+ "color": "black",
+ "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}",
+ "pattern-pixelSize": "9",
+ "pattern-repeat": "35",
+ "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}",
+ "pattern-polygon": "true",
+ "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}",
+ "pattern-path-width": "0",
+ "pattern-path-fillOpacity": "1",
+ "pattern-path-color": "black"
+ },
+ "style:selected": {
+ "pane": "selected",
+ "width": "4",
+ "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}",
+ "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}",
+ "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}",
+ "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}",
+ "color": "#3f3f3f",
+ "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}",
+ "pattern-pixelSize": "9",
+ "pattern-repeat": "35",
+ "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}",
+ "pattern-polygon": "true",
+ "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}",
+ "pattern-path-width": "0",
+ "pattern-path-fillOpacity": "1",
+ "pattern-path-color": "#3f3f3f"
}
},
"info": [
diff --git a/renewables.json b/renewables.json
index 8e22ef7f..6c32493d 100644
--- a/renewables.json
+++ b/renewables.json
@@ -2,7 +2,9 @@
"type": "overpass",
"name": {
"de": "Erneuerbare Energien",
- "en": "Renewables"
+ "en": "Renewables",
+ "fr": "Énergies renouvelables",
+ "pt-br": "Renováveis"
},
"query": {
"11": [
diff --git a/swimming_bathing.json b/swimming_bathing.json
new file mode 100644
index 00000000..eccb6016
--- /dev/null
+++ b/swimming_bathing.json
@@ -0,0 +1,134 @@
+{
+ "type": "overpass",
+ "name": {
+ "de": "Schwimmen und Baden",
+ "en": "Swimming and bathing",
+ "fr": "Natation/Baignade/Bains"
+ },
+ "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];",
+ "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.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": [
+ "",
+ "{% for value, data in const %}",
+ "{% if data.zoom <= map.zoom %}",
+ " ",
+ " {{ markerCircle({})|raw }} {{ data.sign|raw }} | ",
+ " ",
+ " {{ keyTrans(value) }}",
+ " {% if data.append %}({{ trans(data.append) }}){% endif %}",
+ " | ",
+ "
",
+ "{% endif %}",
+ "{% endfor %}",
+ "
"
+ ],
+ "const": {
+ "leisure=swimming_area": {
+ "zoom": 13,
+ "sign": ""
+ },
+ "leisure=water_park": {
+ "zoom": 13,
+ "sign": ""
+ },
+ "leisure=beach_resort": {
+ "zoom": 13,
+ "sign": ""
+ },
+ "leisure=sports_centre": {
+ "zoom": 13,
+ "append": "tag:sport=swimming",
+ "taginfo": "leisure=swimming_area, sport=swimming",
+ "sign": ""
+ },
+ "natural=water": {
+ "zoom": 13,
+ "append": "tag:sport=swimming",
+ "taginfo": "natural=water, sport=swimming",
+ "sign": ""
+ },
+ "natural=beach": {
+ "zoom": 13,
+ "sign": ""
+ },
+ "amenity=public_bath": {
+ "zoom": 13,
+ "taginfo": "amenity=public_bath, bath:type=*",
+ "sign": ""
+ },
+ "tourism=spa_resort": {
+ "zoom": 13,
+ "sign": ""
+ },
+ "leisure=swimming_pool": {
+ "zoom": 16,
+ "append": "tag:access!=private",
+ "taginfo": "leisure=swimming_pool, access!=private",
+ "sign": ""
+ },
+ "leisure=sauna": {
+ "zoom": 16,
+ "taginfo": "leisure=sauna, sauna:type=*",
+ "sign": ""
+ }
+ }
+}
diff --git a/xmas.json b/xmas.json
new file mode 100644
index 00000000..ab728029
--- /dev/null
+++ b/xmas.json
@@ -0,0 +1,81 @@
+{
+ "type": "overpass",
+ "name": {
+ "en": "Christmas",
+ "fr": "Noël"
+ },
+ "query": {
+ "14": [
+ "(",
+ "node[\"xmas:feature\"];",
+ "way[\"xmas:feature\"];",
+ "relation[\"xmas:feature\"];",
+ ")"
+ ]
+ },
+ "feature": {
+ "title": "{{ attribute(tags, \"xmas:name\")|default(trans(\"unnamed\")) }}",
+ "description": "{{ tagTransList(\"xmas:feature\", attribute(tags, \"xmas:feature\")) }}",
+ "body": [
+ "{% if attribute(tags, 'xmas:location') %}",
+ "",
+ " ",
+ " {{ keyTrans('location') }}:",
+ " ",
+ " {{ attribute(tags, 'xmas:location') }}",
+ " ",
+ "",
+ "{% endif %}",
+ "",
+ "{% if attribute(tags, 'xmas:day_date') %}",
+ "",
+ " ",
+ " Open:",
+ " ",
+ " {{ attribute(tags, 'xmas:day_date') }}",
+ " ",
+ "",
+ "{% endif %}",
+ "",
+ "{% if attribute(tags, 'xmas:opening_hours') %}",
+ "",
+ " ",
+ " {{ keyTrans('opening_hours') }}:",
+ " ",
+ " {{ attribute(tags, 'xmas:opening_hours') }}",
+ " ",
+ "",
+ "{% endif %}",
+ "",
+ "{% if attribute(tags, 'xmas:url') %}",
+ "",
+ " ",
+ " {{ keyTrans('website') }}:",
+ " ",
+ " {{ attribute(tags, 'xmas:url') }}",
+ " ",
+ "",
+ "{% endif %}"
+ ],
+ "markerSign": [
+ "{{ attribute(const, attribute(tags, 'xmas:feature'))|raw }}",
+ ""
+ ]
+ },
+ "const": {
+ "market": "",
+ "tree": "",
+ "shop": "",
+ "event": ""
+ },
+ "info": [
+ "",
+ "{% for value, icon in const %}",
+ " ",
+ " {{ markerCircle({})|raw }} {{ icon|raw }} | ",
+ " {{ tagTrans('xmas:feature', value) }} | ",
+ "
",
+ "{% endfor %}",
+ "
"
+ ]
+}