diff --git a/Logic/SimpleMetaTagger.ts b/Logic/SimpleMetaTagger.ts
index ff3175247..c27240cf9 100644
--- a/Logic/SimpleMetaTagger.ts
+++ b/Logic/SimpleMetaTagger.ts
@@ -49,8 +49,7 @@ export default class SimpleMetaTagger {
return true;
}
)
- public static readonly lazyTags: string[] = [].concat(...SimpleMetaTagger.metatags.filter(tagger => tagger.isLazy)
- .map(tagger => tagger.keys));
+
private static latlon = new SimpleMetaTagger({
keys: ["_lat", "_lon"],
doc: "The latitude and longitude of the point (or centerpoint in the case of a way/area)"
@@ -382,6 +381,9 @@ export default class SimpleMetaTagger {
public readonly includesDates: boolean
public readonly applyMetaTagsOnFeature: (feature: any, freshness: Date, layer: LayerConfig) => boolean;
+ public static readonly lazyTags: string[] = [].concat(...SimpleMetaTagger.metatags.filter(tagger => tagger.isLazy)
+ .map(tagger => tagger.keys));
+
/***
* A function that adds some extra data to a feature
* @param docs: what does this extra data do?
diff --git a/assets/layers/barrier/barrier.json b/assets/layers/barrier/barrier.json
index 3b1beca8a..fd0519779 100644
--- a/assets/layers/barrier/barrier.json
+++ b/assets/layers/barrier/barrier.json
@@ -193,9 +193,9 @@
{
"if": "cycle_barrier:type=double",
"then": {
- "en": "Double, two barriers behind each other ",
- "nl": "Dubbel, twee hekjes achter elkaar ",
- "de": "Doppelt, zwei Barrieren hintereinander "
+ "en": "Double, two barriers behind each other ",
+ "nl": "Dubbel, twee hekjes achter elkaar ",
+ "de": "Doppelt, zwei Barrieren hintereinander "
}
},
{
@@ -246,9 +246,9 @@
},
{
"render": {
- "en": "Space between barriers (along the length of the road): {width:separation} m",
- "nl": "Ruimte tussen barrières (langs de lengte van de weg): {width:separation} m",
- "de": "Abstand zwischen den Barrieren (entlang der Straße): {width:separation} m"
+ "en": "Space between barriers (along the length of the road): {spacing} m",
+ "nl": "Ruimte tussen barrières (langs de lengte van de weg): {spacing} m",
+ "de": "Abstand zwischen den Barrieren (entlang der Straße): {spacing} m"
},
"question": {
"en": "How much space is there between the barriers (along the length of the road)?",
@@ -273,9 +273,9 @@
},
{
"render": {
- "en": "Width of opening: {width:opening} m",
- "nl": "Breedte van de opening: {width:opening} m",
- "de": "Breite der Öffnung: {width:opening} m"
+ "en": "Width of opening: {opening} m",
+ "nl": "Breedte van de opening: {opening} m",
+ "de": "Breite der Öffnung: {opening} m"
},
"question": {
"en": "How wide is the smallest opening next to the barriers?",
diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json
index 813246c78..1a3623620 100644
--- a/assets/layers/charging_station/charging_station.json
+++ b/assets/layers/charging_station/charging_station.json
@@ -1682,7 +1682,7 @@
"planned:amenity=",
"construction:amenity=",
"disused:amenity=",
- "operational_status=",
+ "operational_status=broken",
"amenity=charging_station"
]
},
@@ -1695,11 +1695,11 @@
{
"if": {
"and": [
- "planned:amenity=",
+ "planned:amenity=charging_station",
"construction:amenity=",
"disused:amenity=",
- "operational_status=broken",
- "amenity=charging_station"
+ "operational_status=",
+ "amenity="
]
},
"then": {
@@ -1711,8 +1711,8 @@
{
"if": {
"and": [
- "planned:amenity=charging_station",
- "construction:amenity=",
+ "planned:amenity=",
+ "construction:amenity=charging_station",
"disused:amenity=",
"operational_status=",
"amenity="
@@ -1728,8 +1728,8 @@
"if": {
"and": [
"planned:amenity=",
- "construction:amenity=charging_station",
- "disused:amenity=",
+ "construction:amenity=",
+ "disused:amenity=charging_station",
"operational_status=",
"amenity="
]
@@ -1745,9 +1745,9 @@
"and": [
"planned:amenity=",
"construction:amenity=",
- "disused:amenity=charging_station",
+ "disused:amenity=",
"operational_status=",
- "amenity="
+ "amenity=charging_station"
]
},
"then": {
@@ -1794,6 +1794,69 @@
}
}
],
+ "mapRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "icon": {
+ "render": "pin:#fff;./assets/themes/charging_stations/plug.svg",
+ "mappings": [
+ {
+ "if": "bicycle=yes",
+ "then": "pin:#fff;./assets/themes/charging_stations/bicycle.svg"
+ },
+ {
+ "if": {
+ "or": [
+ "car=yes",
+ "motorcar=yes"
+ ]
+ },
+ "then": "pin:#fff;./assets/themes/charging_stations/car.svg"
+ }
+ ]
+ },
+ "iconBadges": [
+ {
+ "if": {
+ "or": [
+ "disused:amenity=charging_station",
+ "operational_status=broken"
+ ]
+ },
+ "then": "cross:#c22;"
+ },
+ {
+ "if": {
+ "or": [
+ "proposed:amenity=charging_station",
+ "planned:amenity=charging_station"
+ ]
+ },
+ "then": "./assets/layers/charging_station/under_construction.svg"
+ },
+ {
+ "if": {
+ "and": [
+ "bicycle=yes",
+ {
+ "or": [
+ "motorcar=yes",
+ "car=yes"
+ ]
+ }
+ ]
+ },
+ "then": "circle:#fff;./assets/themes/charging_stations/car.svg"
+ }
+ ],
+ "iconSize": {
+ "render": "50,50,bottom"
+ }
+ }
+ ],
"presets": [
{
"tags": [
@@ -2244,68 +2307,5 @@
]
},
"neededChangesets": 10
- },
- "mapRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "icon": {
- "render": "pin:#fff;./assets/themes/charging_stations/plug.svg",
- "mappings": [
- {
- "if": "bicycle=yes",
- "then": "pin:#fff;./assets/themes/charging_stations/bicycle.svg"
- },
- {
- "if": {
- "or": [
- "car=yes",
- "motorcar=yes"
- ]
- },
- "then": "pin:#fff;./assets/themes/charging_stations/car.svg"
- }
- ]
- },
- "iconBadges": [
- {
- "if": {
- "or": [
- "disused:amenity=charging_station",
- "operational_status=broken"
- ]
- },
- "then": "cross:#c22;"
- },
- {
- "if": {
- "or": [
- "proposed:amenity=charging_station",
- "planned:amenity=charging_station"
- ]
- },
- "then": "./assets/layers/charging_station/under_construction.svg"
- },
- {
- "if": {
- "and": [
- "bicycle=yes",
- {
- "or": [
- "motorcar=yes",
- "car=yes"
- ]
- }
- ]
- },
- "then": "circle:#fff;./assets/themes/charging_stations/car.svg"
- }
- ],
- "iconSize": {
- "render": "50,50,bottom"
- }
- }
- ]
+ }
}
\ No newline at end of file
diff --git a/index.manifest b/index.manifest
index 8a99d1fa0..1eb1aec3c 100644
--- a/index.manifest
+++ b/index.manifest
@@ -1,66 +1,66 @@
{
- "name": "index",
- "short_name": "MapComplete",
- "start_url": "index.html",
- "display": "standalone",
- "background_color": "#fff",
- "description": "A thematic map viewer and editor based on OpenStreetMap",
- "orientation": "portrait-primary, landscape-primary",
- "icons": [
- {
- "src": "assets/generated/svg_mapcomplete_logo72.png",
- "sizes": "72x72",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo96.png",
- "sizes": "96x96",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo120.png",
- "sizes": "120x120",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo128.png",
- "sizes": "128x128",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo144.png",
- "sizes": "144x144",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo152.png",
- "sizes": "152x152",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo180.png",
- "sizes": "180x180",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo384.png",
- "sizes": "384x384",
- "type": "image/png"
- },
- {
- "src": "assets/generated/svg_mapcomplete_logo512.png",
- "sizes": "512x512",
- "type": "image/png"
- },
- {
- "src": "./assets/svg/mapcomplete_logo.svg",
- "sizes": "513x513",
- "type": "image/svg"
- }
- ]
- }
\ No newline at end of file
+ "name": "index",
+ "short_name": "MapComplete",
+ "start_url": "index.html",
+ "display": "standalone",
+ "background_color": "#fff",
+ "description": "A thematic map viewer and editor based on OpenStreetMap",
+ "orientation": "portrait-primary, landscape-primary",
+ "icons": [
+ {
+ "src": "assets/generated/svg_mapcomplete_logo72.png",
+ "sizes": "72x72",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo96.png",
+ "sizes": "96x96",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo120.png",
+ "sizes": "120x120",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo128.png",
+ "sizes": "128x128",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo144.png",
+ "sizes": "144x144",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo152.png",
+ "sizes": "152x152",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo180.png",
+ "sizes": "180x180",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo384.png",
+ "sizes": "384x384",
+ "type": "image/png"
+ },
+ {
+ "src": "assets/generated/svg_mapcomplete_logo512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ },
+ {
+ "src": "./assets/svg/mapcomplete_logo.svg",
+ "sizes": "513x513",
+ "type": "image/svg"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 5a8667729..9623c0d09 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -924,6 +924,7 @@
}
},
"charging_station": {
+ "description": "Eine Ladestation",
"filter": {
"0": {
"options": {
@@ -1226,8 +1227,7 @@
}
}
}
- },
- "description": "Eine Ladestation"
+ }
},
"crossings": {
"description": "Übergänge für Fußgänger und Radfahrer",
@@ -1743,8 +1743,8 @@
"then": "Dies ist ein normaler automatischer Defibrillator"
}
},
- "render": "Es gibt keine Informationen über den Gerätetyp",
- "question": "Ist dies ein normaler automatischer Defibrillator oder ein manueller Defibrillator nur für Profis?"
+ "question": "Ist dies ein normaler automatischer Defibrillator oder ein manueller Defibrillator nur für Profis?",
+ "render": "Es gibt keine Informationen über den Gerätetyp"
},
"defibrillator-defibrillator:location": {
"question": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (in der lokalen Sprache)",
@@ -1927,8 +1927,8 @@
"title": "Restaurant"
},
"1": {
- "title": "Schnellimbiss",
- "description": "Ein Lebensmittelunternehmen, das sich auf schnellen Thekendienst und Essen zum Mitnehmen konzentriert"
+ "description": "Ein Lebensmittelunternehmen, das sich auf schnellen Thekendienst und Essen zum Mitnehmen konzentriert",
+ "title": "Schnellimbiss"
},
"2": {
"title": "Pommesbude"
@@ -2135,8 +2135,8 @@
"question": "Sind Hunde in diesem Naturschutzgebiet erlaubt?"
},
"Email": {
- "render": "{email}",
- "question": "An welche Email-Adresse kann man sich bei Fragen und Problemen zu diesem Naturschutzgebiet wenden?
Respektieren Sie die Privatsphäre - geben Sie nur dann eine persönliche Email-Adresse an, wenn diese allgemein bekannt ist"
+ "question": "An welche Email-Adresse kann man sich bei Fragen und Problemen zu diesem Naturschutzgebiet wenden?
Respektieren Sie die Privatsphäre - geben Sie nur dann eine persönliche Email-Adresse an, wenn diese allgemein bekannt ist",
+ "render": "{email}"
},
"Surface area": {
"render": "Grundfläche: {_surface:ha}ha"
@@ -2145,8 +2145,8 @@
"question": "Auf welcher Webseite kann man mehr Informationen über dieses Naturschutzgebiet finden?"
},
"phone": {
- "render": "{phone}",
- "question": "Welche Telefonnummer kann man bei Fragen und Problemen zu diesem Naturschutzgebiet anrufen?
Respektieren Sie die Privatsphäre - geben Sie nur eine Telefonnummer an, wenn diese allgemein bekannt ist"
+ "question": "Welche Telefonnummer kann man bei Fragen und Problemen zu diesem Naturschutzgebiet anrufen?
Respektieren Sie die Privatsphäre - geben Sie nur eine Telefonnummer an, wenn diese allgemein bekannt ist",
+ "render": "{phone}"
}
}
},
@@ -2165,8 +2165,8 @@
"then": "Eintritt kostenlos"
}
},
- "render": "Der Besuch des Turms kostet {charge}",
- "question": "Was kostet der Zugang zu diesem Turm?"
+ "question": "Was kostet der Zugang zu diesem Turm?",
+ "render": "Der Besuch des Turms kostet {charge}"
},
"Height": {
"question": "Wie hoch ist dieser Turm?",
@@ -2289,12 +2289,12 @@
"question": "Ist dieser Spielplatz nachts beleuchtet?"
},
"playground-max_age": {
- "render": "Zugang nur für Kinder bis maximal {max_age}",
- "question": "Bis zu welchem Alter dürfen Kinder auf diesem Spielplatz spielen?"
+ "question": "Bis zu welchem Alter dürfen Kinder auf diesem Spielplatz spielen?",
+ "render": "Zugang nur für Kinder bis maximal {max_age}"
},
"playground-min_age": {
- "render": "Zugang nur für Kinder ab {min_age} Jahren",
- "question": "Ab welchem Alter dürfen Kinder auf diesem Spielplatz spielen?"
+ "question": "Ab welchem Alter dürfen Kinder auf diesem Spielplatz spielen?",
+ "render": "Zugang nur für Kinder ab {min_age} Jahren"
},
"playground-opening_hours": {
"mappings": {
@@ -2315,8 +2315,8 @@
"render": "Betrieben von {operator}"
},
"playground-phone": {
- "render": "{phone}",
- "question": "Wie lautet die Telefonnummer vom Betreiber des Spielplatzes?"
+ "question": "Wie lautet die Telefonnummer vom Betreiber des Spielplatzes?",
+ "render": "{phone}"
},
"playground-surface": {
"mappings": {
@@ -2617,6 +2617,9 @@
},
"question": "Muss man einen Termin vereinbaren, um diesen Sportplatz zu benutzen?"
},
+ "sport_pitch-email": {
+ "question": "Wie ist die Email-Adresse des Betreibers?"
+ },
"sport_pitch-opening_hours": {
"mappings": {
"1": {
@@ -2625,6 +2628,9 @@
},
"question": "Wann ist dieser Sportplatz zugänglich?"
},
+ "sport_pitch-phone": {
+ "question": "Wie ist die Telefonnummer des Betreibers?"
+ },
"sport_pitch-sport": {
"mappings": {
"0": {
@@ -2667,14 +2673,8 @@
"then": "Die Oberfläche ist Beton"
}
},
- "render": "Die Oberfläche ist {surface}",
- "question": "Was ist die Oberfläche dieses Sportplatzes?"
- },
- "sport_pitch-phone": {
- "question": "Wie ist die Telefonnummer des Betreibers?"
- },
- "sport_pitch-email": {
- "question": "Wie ist die Email-Adresse des Betreibers?"
+ "question": "Was ist die Oberfläche dieses Sportplatzes?",
+ "render": "Die Oberfläche ist {surface}"
}
},
"title": {
@@ -2860,6 +2860,25 @@
"question": "Wie viel muss man für diese Toiletten bezahlen?",
"render": "Die Gebühr beträgt {charge}"
},
+ "toilet-handwashing": {
+ "mappings": {
+ "0": {
+ "then": "Diese Toilette verfügt über ein Waschbecken"
+ },
+ "1": {
+ "then": "Diese Toilette verfügt über kein Waschbecken"
+ }
+ },
+ "question": "Verfügt diese Toilette über ein Waschbecken?"
+ },
+ "toilet-has-paper": {
+ "mappings": {
+ "1": {
+ "then": "Für diese Toilette müssen Sie Ihr eigenes Toilettenpapier mitbringen"
+ }
+ },
+ "question": "Muss man für diese Toilette sein eigenes Toilettenpapier mitbringen?"
+ },
"toilets-changing-table": {
"mappings": {
"0": {
@@ -2909,25 +2928,6 @@
}
},
"question": "Gibt es eine Toilette für Rollstuhlfahrer?"
- },
- "toilet-has-paper": {
- "mappings": {
- "1": {
- "then": "Für diese Toilette müssen Sie Ihr eigenes Toilettenpapier mitbringen"
- }
- },
- "question": "Muss man für diese Toilette sein eigenes Toilettenpapier mitbringen?"
- },
- "toilet-handwashing": {
- "mappings": {
- "0": {
- "then": "Diese Toilette verfügt über ein Waschbecken"
- },
- "1": {
- "then": "Diese Toilette verfügt über kein Waschbecken"
- }
- },
- "question": "Verfügt diese Toilette über ein Waschbecken?"
}
},
"title": {
@@ -2936,9 +2936,6 @@
},
"trail": {
"name": "Wanderwege",
- "title": {
- "render": "Wanderweg"
- },
"tagRenderings": {
"Color": {
"mappings": {
@@ -2959,6 +2956,9 @@
"trail-length": {
"render": "Der Wanderweg ist {_length:km} Kilometer lang"
}
+ },
+ "title": {
+ "render": "Wanderweg"
}
},
"tree_node": {