Fix build

This commit is contained in:
pietervdvn 2021-11-07 16:43:29 +01:00
parent bd21212eba
commit bb283b59a4
5 changed files with 200 additions and 198 deletions

View file

@ -49,8 +49,7 @@ export default class SimpleMetaTagger {
return true; return true;
} }
) )
public static readonly lazyTags: string[] = [].concat(...SimpleMetaTagger.metatags.filter(tagger => tagger.isLazy)
.map(tagger => tagger.keys));
private static latlon = new SimpleMetaTagger({ private static latlon = new SimpleMetaTagger({
keys: ["_lat", "_lon"], keys: ["_lat", "_lon"],
doc: "The latitude and longitude of the point (or centerpoint in the case of a way/area)" 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 includesDates: boolean
public readonly applyMetaTagsOnFeature: (feature: any, freshness: Date, layer: LayerConfig) => 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 * A function that adds some extra data to a feature
* @param docs: what does this extra data do? * @param docs: what does this extra data do?

View file

@ -193,9 +193,9 @@
{ {
"if": "cycle_barrier:type=double", "if": "cycle_barrier:type=double",
"then": { "then": {
"en": "Double, two barriers behind each other <img src='./assets/themes/cycle_infra/Cycle_barrier_double.png' style='width:8em'>", "en": "Double, two barriers behind each other <img src='./assets/themes/cycle_infra/Cycle_barrier_double.svg' style='width:8em'>",
"nl": "Dubbel, twee hekjes achter elkaar <img src='./assets/themes/cycle_infra/Cycle_barrier_double.png' style='width:8em'>", "nl": "Dubbel, twee hekjes achter elkaar <img src='./assets/themes/cycle_infra/Cycle_barrier_double.svg' style='width:8em'>",
"de": "Doppelt, zwei Barrieren hintereinander <img src='./assets/themes/cycle_infra/Cycle_barrier_double.png' style='width:8em'>" "de": "Doppelt, zwei Barrieren hintereinander <img src='./assets/themes/cycle_infra/Cycle_barrier_double.svg' style='width:8em'>"
} }
}, },
{ {
@ -246,9 +246,9 @@
}, },
{ {
"render": { "render": {
"en": "Space between barriers (along the length of the road): {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): {width:separation} m", "nl": "Ruimte tussen barrières (langs de lengte van de weg): {spacing} m",
"de": "Abstand zwischen den Barrieren (entlang der Straße): {width:separation} m" "de": "Abstand zwischen den Barrieren (entlang der Straße): {spacing} m"
}, },
"question": { "question": {
"en": "How much space is there between the barriers (along the length of the road)?", "en": "How much space is there between the barriers (along the length of the road)?",
@ -273,9 +273,9 @@
}, },
{ {
"render": { "render": {
"en": "Width of opening: {width:opening} m", "en": "Width of opening: {opening} m",
"nl": "Breedte van de opening: {width:opening} m", "nl": "Breedte van de opening: {opening} m",
"de": "Breite der Öffnung: {width:opening} m" "de": "Breite der Öffnung: {opening} m"
}, },
"question": { "question": {
"en": "How wide is the smallest opening next to the barriers?", "en": "How wide is the smallest opening next to the barriers?",

View file

@ -1682,7 +1682,7 @@
"planned:amenity=", "planned:amenity=",
"construction:amenity=", "construction:amenity=",
"disused:amenity=", "disused:amenity=",
"operational_status=", "operational_status=broken",
"amenity=charging_station" "amenity=charging_station"
] ]
}, },
@ -1695,11 +1695,11 @@
{ {
"if": { "if": {
"and": [ "and": [
"planned:amenity=", "planned:amenity=charging_station",
"construction:amenity=", "construction:amenity=",
"disused:amenity=", "disused:amenity=",
"operational_status=broken", "operational_status=",
"amenity=charging_station" "amenity="
] ]
}, },
"then": { "then": {
@ -1711,8 +1711,8 @@
{ {
"if": { "if": {
"and": [ "and": [
"planned:amenity=charging_station", "planned:amenity=",
"construction:amenity=", "construction:amenity=charging_station",
"disused:amenity=", "disused:amenity=",
"operational_status=", "operational_status=",
"amenity=" "amenity="
@ -1728,8 +1728,8 @@
"if": { "if": {
"and": [ "and": [
"planned:amenity=", "planned:amenity=",
"construction:amenity=charging_station", "construction:amenity=",
"disused:amenity=", "disused:amenity=charging_station",
"operational_status=", "operational_status=",
"amenity=" "amenity="
] ]
@ -1745,9 +1745,9 @@
"and": [ "and": [
"planned:amenity=", "planned:amenity=",
"construction:amenity=", "construction:amenity=",
"disused:amenity=charging_station", "disused:amenity=",
"operational_status=", "operational_status=",
"amenity=" "amenity=charging_station"
] ]
}, },
"then": { "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": [ "presets": [
{ {
"tags": [ "tags": [
@ -2244,68 +2307,5 @@
] ]
}, },
"neededChangesets": 10 "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"
}
}
]
} }

View file

@ -1,66 +1,66 @@
{ {
"name": "index", "name": "index",
"short_name": "MapComplete", "short_name": "MapComplete",
"start_url": "index.html", "start_url": "index.html",
"display": "standalone", "display": "standalone",
"background_color": "#fff", "background_color": "#fff",
"description": "A thematic map viewer and editor based on OpenStreetMap", "description": "A thematic map viewer and editor based on OpenStreetMap",
"orientation": "portrait-primary, landscape-primary", "orientation": "portrait-primary, landscape-primary",
"icons": [ "icons": [
{ {
"src": "assets/generated/svg_mapcomplete_logo72.png", "src": "assets/generated/svg_mapcomplete_logo72.png",
"sizes": "72x72", "sizes": "72x72",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo96.png", "src": "assets/generated/svg_mapcomplete_logo96.png",
"sizes": "96x96", "sizes": "96x96",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo120.png", "src": "assets/generated/svg_mapcomplete_logo120.png",
"sizes": "120x120", "sizes": "120x120",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo128.png", "src": "assets/generated/svg_mapcomplete_logo128.png",
"sizes": "128x128", "sizes": "128x128",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo144.png", "src": "assets/generated/svg_mapcomplete_logo144.png",
"sizes": "144x144", "sizes": "144x144",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo152.png", "src": "assets/generated/svg_mapcomplete_logo152.png",
"sizes": "152x152", "sizes": "152x152",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo180.png", "src": "assets/generated/svg_mapcomplete_logo180.png",
"sizes": "180x180", "sizes": "180x180",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo192.png", "src": "assets/generated/svg_mapcomplete_logo192.png",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo384.png", "src": "assets/generated/svg_mapcomplete_logo384.png",
"sizes": "384x384", "sizes": "384x384",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "assets/generated/svg_mapcomplete_logo512.png", "src": "assets/generated/svg_mapcomplete_logo512.png",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png" "type": "image/png"
}, },
{ {
"src": "./assets/svg/mapcomplete_logo.svg", "src": "./assets/svg/mapcomplete_logo.svg",
"sizes": "513x513", "sizes": "513x513",
"type": "image/svg" "type": "image/svg"
} }
] ]
} }

View file

@ -924,6 +924,7 @@
} }
}, },
"charging_station": { "charging_station": {
"description": "Eine Ladestation",
"filter": { "filter": {
"0": { "0": {
"options": { "options": {
@ -1226,8 +1227,7 @@
} }
} }
} }
}, }
"description": "Eine Ladestation"
}, },
"crossings": { "crossings": {
"description": "Übergänge für Fußgänger und Radfahrer", "description": "Übergänge für Fußgänger und Radfahrer",
@ -1743,8 +1743,8 @@
"then": "Dies ist ein normaler automatischer Defibrillator" "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": { "defibrillator-defibrillator:location": {
"question": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (in der lokalen Sprache)", "question": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (in der lokalen Sprache)",
@ -1927,8 +1927,8 @@
"title": "Restaurant" "title": "Restaurant"
}, },
"1": { "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": { "2": {
"title": "Pommesbude" "title": "Pommesbude"
@ -2135,8 +2135,8 @@
"question": "Sind Hunde in diesem Naturschutzgebiet erlaubt?" "question": "Sind Hunde in diesem Naturschutzgebiet erlaubt?"
}, },
"Email": { "Email": {
"render": "<a href='mailto:{email}' target='_blank'>{email}</a>", "question": "An welche Email-Adresse kann man sich bei Fragen und Problemen zu diesem Naturschutzgebiet wenden?<br/><span class='subtle'>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?<br/><span class='subtle'>Respektieren Sie die Privatsphäre - geben Sie nur dann eine persönliche Email-Adresse an, wenn diese allgemein bekannt ist" "render": "<a href='mailto:{email}' target='_blank'>{email}</a>"
}, },
"Surface area": { "Surface area": {
"render": "Grundfläche: {_surface:ha}ha" "render": "Grundfläche: {_surface:ha}ha"
@ -2145,8 +2145,8 @@
"question": "Auf welcher Webseite kann man mehr Informationen über dieses Naturschutzgebiet finden?" "question": "Auf welcher Webseite kann man mehr Informationen über dieses Naturschutzgebiet finden?"
}, },
"phone": { "phone": {
"render": "<a href='tel:{email}' target='_blank'>{phone}</a>", "question": "Welche Telefonnummer kann man bei Fragen und Problemen zu diesem Naturschutzgebiet anrufen?<br/><span class='subtle'>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?<br/><span class='subtle'>Respektieren Sie die Privatsphäre - geben Sie nur eine Telefonnummer an, wenn diese allgemein bekannt ist" "render": "<a href='tel:{email}' target='_blank'>{phone}</a>"
} }
} }
}, },
@ -2165,8 +2165,8 @@
"then": "Eintritt kostenlos" "then": "Eintritt kostenlos"
} }
}, },
"render": "Der Besuch des Turms kostet <b>{charge}</b>", "question": "Was kostet der Zugang zu diesem Turm?",
"question": "Was kostet der Zugang zu diesem Turm?" "render": "Der Besuch des Turms kostet <b>{charge}</b>"
}, },
"Height": { "Height": {
"question": "Wie hoch ist dieser Turm?", "question": "Wie hoch ist dieser Turm?",
@ -2289,12 +2289,12 @@
"question": "Ist dieser Spielplatz nachts beleuchtet?" "question": "Ist dieser Spielplatz nachts beleuchtet?"
}, },
"playground-max_age": { "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": { "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": { "playground-opening_hours": {
"mappings": { "mappings": {
@ -2315,8 +2315,8 @@
"render": "Betrieben von {operator}" "render": "Betrieben von {operator}"
}, },
"playground-phone": { "playground-phone": {
"render": "<a href='tel:{phone}'>{phone}</a>", "question": "Wie lautet die Telefonnummer vom Betreiber des Spielplatzes?",
"question": "Wie lautet die Telefonnummer vom Betreiber des Spielplatzes?" "render": "<a href='tel:{phone}'>{phone}</a>"
}, },
"playground-surface": { "playground-surface": {
"mappings": { "mappings": {
@ -2617,6 +2617,9 @@
}, },
"question": "Muss man einen Termin vereinbaren, um diesen Sportplatz zu benutzen?" "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": { "sport_pitch-opening_hours": {
"mappings": { "mappings": {
"1": { "1": {
@ -2625,6 +2628,9 @@
}, },
"question": "Wann ist dieser Sportplatz zugänglich?" "question": "Wann ist dieser Sportplatz zugänglich?"
}, },
"sport_pitch-phone": {
"question": "Wie ist die Telefonnummer des Betreibers?"
},
"sport_pitch-sport": { "sport_pitch-sport": {
"mappings": { "mappings": {
"0": { "0": {
@ -2667,14 +2673,8 @@
"then": "Die Oberfläche ist <b>Beton</b>" "then": "Die Oberfläche ist <b>Beton</b>"
} }
}, },
"render": "Die Oberfläche ist <b>{surface}</b>", "question": "Was ist die Oberfläche dieses Sportplatzes?",
"question": "Was ist die Oberfläche dieses Sportplatzes?" "render": "Die Oberfläche ist <b>{surface}</b>"
},
"sport_pitch-phone": {
"question": "Wie ist die Telefonnummer des Betreibers?"
},
"sport_pitch-email": {
"question": "Wie ist die Email-Adresse des Betreibers?"
} }
}, },
"title": { "title": {
@ -2860,6 +2860,25 @@
"question": "Wie viel muss man für diese Toiletten bezahlen?", "question": "Wie viel muss man für diese Toiletten bezahlen?",
"render": "Die Gebühr beträgt {charge}" "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 <b>kein</b> 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": { "toilets-changing-table": {
"mappings": { "mappings": {
"0": { "0": {
@ -2909,25 +2928,6 @@
} }
}, },
"question": "Gibt es eine Toilette für Rollstuhlfahrer?" "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 <b>kein</b> Waschbecken"
}
},
"question": "Verfügt diese Toilette über ein Waschbecken?"
} }
}, },
"title": { "title": {
@ -2936,9 +2936,6 @@
}, },
"trail": { "trail": {
"name": "Wanderwege", "name": "Wanderwege",
"title": {
"render": "Wanderweg"
},
"tagRenderings": { "tagRenderings": {
"Color": { "Color": {
"mappings": { "mappings": {
@ -2959,6 +2956,9 @@
"trail-length": { "trail-length": {
"render": "Der Wanderweg ist {_length:km} Kilometer lang" "render": "Der Wanderweg ist {_length:km} Kilometer lang"
} }
},
"title": {
"render": "Wanderweg"
} }
}, },
"tree_node": { "tree_node": {