forked from MapComplete/MapComplete
Refactoring: remove old and obsolete data fields in themes and layers
This commit is contained in:
parent
130ae82e90
commit
922cebf9d1
49 changed files with 574 additions and 664 deletions
|
@ -1,4 +1,28 @@
|
|||
{
|
||||
"id": "aerialway",
|
||||
"name": {
|
||||
"en": "Aerialways",
|
||||
"de": "Seilbahnen"
|
||||
},
|
||||
"description": {
|
||||
"en": "Various forms of transport for passengers and goods that use wires, including cable cars, gondolas, chair lifts, drag lifts, and zip lines. ",
|
||||
"de": "Alle Arten von seil- oder drahtgestütztem Personen- oder Gütertransport, wie Seilbahnen, Gondeln, Sessellifte, Schlepplifte. "
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"aerialway~*",
|
||||
"aerialway!=pylon",
|
||||
"aerialway!=station"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Aerialway {name}",
|
||||
"de": "Seilbahn {name}"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -27,6 +51,27 @@
|
|||
"labelCssClasses": "bg-white px-2 py-1 no-weblate"
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": "4",
|
||||
"color": "black",
|
||||
"imageAlongWay": [
|
||||
{
|
||||
"if": "oneway=no",
|
||||
"then": "./assets/png/twoway.png"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"oneway=yes",
|
||||
"oneway="
|
||||
]
|
||||
},
|
||||
"then": "./assets/png/oneway.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
|
@ -183,50 +228,5 @@
|
|||
"de": "Die Seilbahn hat eine Länge von {_length:km} km"
|
||||
}
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": "4",
|
||||
"color": "black",
|
||||
"imageAlongWay": [
|
||||
{
|
||||
"if": "oneway=no",
|
||||
"then": "./assets/png/twoway.png"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"oneway=yes",
|
||||
"oneway="
|
||||
]
|
||||
},
|
||||
"then": "./assets/png/oneway.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"id": "aerialway",
|
||||
"name": {
|
||||
"en": "Aerialways",
|
||||
"de": "Seilbahnen"
|
||||
},
|
||||
"description": {
|
||||
"en": "Various forms of transport for passengers and goods that use wires, including cable cars, gondolas, chair lifts, drag lifts, and zip lines. ",
|
||||
"de": "Alle Arten von seil- oder drahtgestütztem Personen- oder Gütertransport, wie Seilbahnen, Gondeln, Sessellifte, Schlepplifte. "
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"aerialway~*",
|
||||
"aerialway!=pylon",
|
||||
"aerialway!=station"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Aerialway {name}",
|
||||
"de": "Seilbahn {name}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
{
|
||||
"allowMove": {
|
||||
"enableRelocation": false,
|
||||
"enableImproveAccuracy": true
|
||||
},
|
||||
"id": "assembly_point",
|
||||
"name": {
|
||||
"en": "Emergency assembly points",
|
||||
"it": "Punti di raccolta per emergenze",
|
||||
|
@ -13,9 +10,6 @@
|
|||
"it": "Questo livello contiene punti di raccolta e aree di attesa in cui tutti i dipendenti, i passeggeri o una grande folla si riuniscono in caso di emergenza.",
|
||||
"de": "Diese Ebene enthält Sammelplätze und Wartebereiche, in denen sich alle Mitarbeiter, Fahrgäste oder eine große Menschenmenge im Notfall versammeln."
|
||||
},
|
||||
"docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Dassembly_point",
|
||||
"id": "assembly_point",
|
||||
"minzoom": 10,
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
|
@ -23,6 +17,13 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"minzoom": 10,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Assembly point during emergencies",
|
||||
"de": "Sammelplatz bei Notfällen"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"iconSize": "20,20",
|
||||
|
@ -50,12 +51,6 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Assembly point during emergencies",
|
||||
"de": "Sammelplatz bei Notfällen"
|
||||
}
|
||||
},
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
|
@ -154,5 +149,10 @@
|
|||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"allowMove": {
|
||||
"enableRelocation": false,
|
||||
"enableImproveAccuracy": true
|
||||
},
|
||||
"docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Dassembly_point"
|
||||
}
|
||||
|
|
|
@ -5,7 +5,12 @@
|
|||
"nl": "Oplaadpunten",
|
||||
"de": "Ladestationen"
|
||||
},
|
||||
"minzoom": 10,
|
||||
"description": {
|
||||
"en": "A charging station",
|
||||
"nl": "Oplaadpunten",
|
||||
"ca": "Una estació de càrrega",
|
||||
"de": "Eine Ladestation"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
|
@ -20,6 +25,7 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"minzoom": 10,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Charging station",
|
||||
|
@ -65,13 +71,103 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"description": {
|
||||
"en": "A charging station",
|
||||
"nl": "Oplaadpunten",
|
||||
"ca": "Una estació de càrrega",
|
||||
"de": "Eine Ladestation"
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#fff"
|
||||
},
|
||||
"#": "no-question-hint-check",
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/themes/charging_stations/plug.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "bicycle=yes",
|
||||
"then": "./assets/themes/charging_stations/bicycle.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"car=yes",
|
||||
"motorcar=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"disused:amenity=charging_station",
|
||||
"operational_status=broken"
|
||||
]
|
||||
},
|
||||
"then": "close:#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"
|
||||
}
|
||||
],
|
||||
"anchor": "bottom",
|
||||
"iconSize": "50,50"
|
||||
}
|
||||
],
|
||||
"lineRendering": [],
|
||||
"presets": [
|
||||
{
|
||||
"tags": [
|
||||
"amenity=charging_station",
|
||||
"motorcar=no",
|
||||
"bicycle=yes"
|
||||
],
|
||||
"title": {
|
||||
"en": "charging station for electrical bikes",
|
||||
"nl": "oplaadpunt voor elektrische fietsen",
|
||||
"de": "Ladestation für Elektrofahrräder"
|
||||
}
|
||||
},
|
||||
{
|
||||
"tags": [
|
||||
"amenity=charging_station",
|
||||
"motorcar=yes",
|
||||
"bicycle=no"
|
||||
],
|
||||
"title": {
|
||||
"en": "charging station for cars",
|
||||
"nl": "oplaadstation voor elektrische auto's",
|
||||
"de": "Ladestation für Elektrofahrräder"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
|
@ -2316,103 +2412,6 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"lineRendering": [],
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "pin",
|
||||
"color": "#fff"
|
||||
},
|
||||
{
|
||||
"icon": {
|
||||
"render": "./assets/themes/charging_stations/plug.svg",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "bicycle=yes",
|
||||
"then": "./assets/themes/charging_stations/bicycle.svg"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"car=yes",
|
||||
"motorcar=yes"
|
||||
]
|
||||
},
|
||||
"then": "./assets/themes/charging_stations/car.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"iconBadges": [
|
||||
{
|
||||
"if": {
|
||||
"or": [
|
||||
"disused:amenity=charging_station",
|
||||
"operational_status=broken"
|
||||
]
|
||||
},
|
||||
"then": "close:#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"
|
||||
}
|
||||
],
|
||||
"anchor": "bottom",
|
||||
"iconSize": "50,50"
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"tags": [
|
||||
"amenity=charging_station",
|
||||
"motorcar=no",
|
||||
"bicycle=yes"
|
||||
],
|
||||
"title": {
|
||||
"en": "charging station for electrical bikes",
|
||||
"nl": "oplaadpunt voor elektrische fietsen",
|
||||
"de": "Ladestation für Elektrofahrräder"
|
||||
}
|
||||
},
|
||||
{
|
||||
"tags": [
|
||||
"amenity=charging_station",
|
||||
"motorcar=yes",
|
||||
"bicycle=no"
|
||||
],
|
||||
"title": {
|
||||
"en": "charging station for cars",
|
||||
"nl": "oplaadstation voor elektrische auto's",
|
||||
"de": "Ladestation für Elektrofahrräder"
|
||||
}
|
||||
}
|
||||
],
|
||||
"filter": [
|
||||
{
|
||||
"id": "vehicle-type",
|
||||
|
@ -2611,6 +2610,20 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"deletion": {
|
||||
"softDeletionTags": {
|
||||
"and": [
|
||||
"amenity=",
|
||||
"disused:amenity=charging_station"
|
||||
]
|
||||
},
|
||||
"neededChangesets": 10
|
||||
},
|
||||
"allowMove": {
|
||||
"enableRelocation": false,
|
||||
"enableImproveAccuracy": true
|
||||
},
|
||||
"#": "no-question-hint-check",
|
||||
"units": [
|
||||
{
|
||||
"maxstay": {
|
||||
|
@ -2759,18 +2772,5 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"allowMove": {
|
||||
"enableRelocation": false,
|
||||
"enableImproveAccuracy": true
|
||||
},
|
||||
"deletion": {
|
||||
"softDeletionTags": {
|
||||
"and": [
|
||||
"amenity=",
|
||||
"disused:amenity=charging_station"
|
||||
]
|
||||
},
|
||||
"neededChangesets": 10
|
||||
}
|
||||
}
|
|
@ -35,7 +35,6 @@
|
|||
}
|
||||
},
|
||||
"minzoom": 19,
|
||||
"doCount": false,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Climbing opportunity?",
|
||||
|
@ -148,5 +147,6 @@
|
|||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"doCount": false
|
||||
}
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
"source": {
|
||||
"osmTags": "HUISNR~*",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/CRAB_2021_10_26/tile_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 18,
|
||||
"maxCacheAge": 0
|
||||
"geoJsonZoomLevel": 18
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_HNRLABEL=(() => {const lbl = feat.properties.HNRLABEL?.split('-')?.map(l => Number(l))?.filter(i => !isNaN (i)) ;if(lbl?.length != 2) {return feat.properties.HNRLABEL}; const addresses = []; for(let i = lbl[0]; i <= lbl[1]; i += 1){addresses.push(''+i);}; return addresses.join(';') })()"
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
{
|
||||
"id": "disaster_response",
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Disaster response organization",
|
||||
"it": "Organizzazione per la risposta ai disastri",
|
||||
"de": "Katastrophenschutzorganisation"
|
||||
}
|
||||
},
|
||||
"name": {
|
||||
"en": "Disaster response organizations",
|
||||
"de": "Katastrophenschutzorganisationen"
|
||||
|
@ -16,8 +9,36 @@
|
|||
"it": "Questo livello contiene organizzazioni che hanno come obiettivo principale quello di aiutare la popolazione civile durante e dopo disastri naturali o antropogenici, lavorando nell'area colpita.",
|
||||
"de": "Diese Ebene umfasst Organisationen, deren Hauptziel es ist, der Zivilbevölkerung während und nach Natur- oder anthropogenen Katastrophen zu helfen, indem sie in dem betroffenen Gebiet tätig sind."
|
||||
},
|
||||
"docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Ddisaster_response",
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"emergency=disaster_response"
|
||||
]
|
||||
}
|
||||
},
|
||||
"minzoom": 10,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Disaster response organization",
|
||||
"it": "Organizzazione per la risposta ai disastri",
|
||||
"de": "Katastrophenschutzorganisation"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/disaster_response/CivilDefence.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"color": "#6BC4F7",
|
||||
|
@ -36,28 +57,6 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"emergency=disaster_response"
|
||||
]
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"iconSize": "40,40",
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"anchor": "bottom",
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/themes/disaster_response/CivilDefence.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
"website",
|
||||
|
@ -77,5 +76,6 @@
|
|||
"de": "Diese Organisation heißt <b>{name}</b>"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Ddisaster_response"
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
"en": "Ice cream parlors",
|
||||
"de": "Eisdielen"
|
||||
},
|
||||
"minzoom": 14,
|
||||
"description": {
|
||||
"en": "A place where ice cream is sold over the counter",
|
||||
"de": "Ein Ort, an dem Eiscreme an der Theke verkauft wird"
|
||||
|
@ -12,6 +11,7 @@
|
|||
"source": {
|
||||
"osmTags": "amenity=ice_cream"
|
||||
},
|
||||
"minzoom": 14,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Ice cream parlor",
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
"id": "item_with_image",
|
||||
"name": {
|
||||
"en": "Items with at least one image"
|
||||
},
|
||||
"description": "All items with an image. All alone, not a layer which is relevant for any MapComplete theme, as it is a random collection of items. However, when put into the databank, this allows to quickly fetch (the URL of) pictures nearby a different object, to quickly link this",
|
||||
"minzoom": 14,
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"or": [
|
||||
|
@ -15,9 +17,7 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"tagRenderings": [
|
||||
"images"
|
||||
],
|
||||
"minzoom": 14,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "POI with image"
|
||||
|
@ -31,10 +31,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"en": "Items with at least one image"
|
||||
},
|
||||
"lineRendering": [],
|
||||
"pointRendering": [
|
||||
{
|
||||
"marker": [
|
||||
|
@ -47,5 +43,9 @@
|
|||
"point"
|
||||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [],
|
||||
"tagRenderings": [
|
||||
"images"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
},
|
||||
"source": {
|
||||
"osmTags": "mr_taskId~*",
|
||||
"geoJson": "https://maproulette.org/api/v2/challenge/view/27971",
|
||||
"isOsmCache": false
|
||||
"geoJson": "https://maproulette.org/api/v2/challenge/view/27971"
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
|
|
|
@ -1,6 +1,23 @@
|
|||
{
|
||||
"credits": "Not logged in",
|
||||
"id": "mountain_rescue",
|
||||
"name": {
|
||||
"en": "Mountain rescue stations",
|
||||
"de": "Bergrettungsstationen"
|
||||
},
|
||||
"description": {
|
||||
"en": "A building where first aid responders store material and might be on watch",
|
||||
"de": "Ein Gebäude, in dem die Ersthelfer Material lagern und möglicherweise Wache halten"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "emergency=mountain_rescue"
|
||||
},
|
||||
"minzoom": 10,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Mountain rescue station",
|
||||
"de": "Bergrettungsstation"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -19,37 +36,12 @@
|
|||
"rotation": "45"
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images"
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": "3",
|
||||
"color": "#ed333b"
|
||||
}
|
||||
],
|
||||
"id": "mountain_rescue",
|
||||
"name": {
|
||||
"en": "Mountain rescue stations",
|
||||
"de": "Bergrettungsstationen"
|
||||
},
|
||||
"description": {
|
||||
"en": "A building where first aid responders store material and might be on watch",
|
||||
"de": "Ein Gebäude, in dem die Ersthelfer Material lagern und möglicherweise Wache halten"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "emergency=mountain_rescue"
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Mountain rescue station",
|
||||
"de": "Bergrettungsstation"
|
||||
}
|
||||
},
|
||||
"deletion": true,
|
||||
"allowMove": {
|
||||
"enableRelocation": false
|
||||
},
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
|
@ -60,5 +52,13 @@
|
|||
"emergency=mountain_rescue"
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images"
|
||||
],
|
||||
"deletion": true,
|
||||
"allowMove": {
|
||||
"enableRelocation": false
|
||||
},
|
||||
"credits": "Not logged in"
|
||||
}
|
||||
|
|
|
@ -12,9 +12,7 @@
|
|||
"source": {
|
||||
"osmTags": "date_created~*",
|
||||
"geoJson": "https://api.openstreetmap.org/api/0.6/notes.json?limit=10000&closed=7&bbox={x_min},{y_min},{x_max},{y_max}",
|
||||
"geoJsonZoomLevel": 12,
|
||||
"maxCacheAge": 0,
|
||||
"isOsmCache": false
|
||||
"geoJsonZoomLevel": 12
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_total_comments:=get(feat)('comments').length",
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
"source": {
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/community_index/tile_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 6,
|
||||
"osmTags": "resources~*",
|
||||
"isOsmCache": false
|
||||
"osmTags": "resources~*"
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_community_links=Object.values(JSON.parse(feat.properties.resources || '{}')).map(value =>{return value.resolved.nameHTML + '<br> ' + value.resolved.descriptionHTML}).join('<br>')"
|
||||
|
|
|
@ -1,5 +1,20 @@
|
|||
{
|
||||
"id": "playground_equipment",
|
||||
"name": {
|
||||
"en": "Playground equipment"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing playground equipment"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "playground~*"
|
||||
},
|
||||
"minzoom": 18,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Playground device"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -18,6 +33,25 @@
|
|||
"iconSize": "20,20"
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": 1,
|
||||
"color": "blue"
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"tags": [
|
||||
"playground=yes"
|
||||
],
|
||||
"title": {
|
||||
"en": "a playground device"
|
||||
},
|
||||
"description": {
|
||||
"en": "An exact type is asked later"
|
||||
}
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
|
@ -299,39 +333,5 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": 1,
|
||||
"color": "blue"
|
||||
}
|
||||
],
|
||||
"id": "playground_equipment",
|
||||
"name": {
|
||||
"en": "Playground equipment"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing playground equipment"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "playground~*"
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Playground device"
|
||||
}
|
||||
},
|
||||
"allowMove": true,
|
||||
"presets": [
|
||||
{
|
||||
"tags": [
|
||||
"playground=yes"
|
||||
],
|
||||
"title": {
|
||||
"en": "a playground device"
|
||||
},
|
||||
"description": {
|
||||
"en": "An exact type is asked later"
|
||||
}
|
||||
}
|
||||
]
|
||||
"allowMove": true
|
||||
}
|
|
@ -1,4 +1,32 @@
|
|||
{
|
||||
"id": "ski_piste",
|
||||
"name": {
|
||||
"en": "Ski and snowboard pistes",
|
||||
"de": "Ski- und Snowboardpisten"
|
||||
},
|
||||
"description": {
|
||||
"en": "Ski and snowboard pistes",
|
||||
"de": "Ski- und Snowboardpisten"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
{
|
||||
"or": [
|
||||
"piste:type=downhill",
|
||||
"piste:type=connection"
|
||||
]
|
||||
},
|
||||
"area!=yes"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Ski piste {name}",
|
||||
"de": "Skipiste {name}"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -12,6 +40,40 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": "10",
|
||||
"color": {
|
||||
"mappings": [
|
||||
{
|
||||
"then": "green",
|
||||
"if": "piste:difficulty=novice"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=easy",
|
||||
"then": "blue"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=intermediate",
|
||||
"then": "red"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=advanced",
|
||||
"then": "black"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=expert",
|
||||
"then": "orange"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=",
|
||||
"then": "gray"
|
||||
}
|
||||
]
|
||||
},
|
||||
"imageAlongWay": "./assets/png/oneway.png"
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
{
|
||||
|
@ -73,67 +135,5 @@
|
|||
"de": "Dieser Teil der Skipiste hat eine Länge von {_length:km} km"
|
||||
}
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": "10",
|
||||
"color": {
|
||||
"mappings": [
|
||||
{
|
||||
"then": "green",
|
||||
"if": "piste:difficulty=novice"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=easy",
|
||||
"then": "blue"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=intermediate",
|
||||
"then": "red"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=advanced",
|
||||
"then": "black"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=expert",
|
||||
"then": "orange"
|
||||
},
|
||||
{
|
||||
"if": "piste:difficulty=",
|
||||
"then": "gray"
|
||||
}
|
||||
]
|
||||
},
|
||||
"imageAlongWay": "./assets/png/oneway.png"
|
||||
}
|
||||
],
|
||||
"id": "ski_piste",
|
||||
"name": {
|
||||
"en": "Ski and snowboard pistes",
|
||||
"de": "Ski- und Snowboardpisten"
|
||||
},
|
||||
"description": {
|
||||
"en": "Ski and snowboard pistes",
|
||||
"de": "Ski- und Snowboardpisten"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
{
|
||||
"or": [
|
||||
"piste:type=downhill",
|
||||
"piste:type=connection"
|
||||
]
|
||||
},
|
||||
"area!=yes"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Ski piste {name}",
|
||||
"de": "Skipiste {name}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,24 @@
|
|||
{
|
||||
"id": "souvenir_coin",
|
||||
"name": {
|
||||
"en": "Souvenir Coin Machines"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing machines selling souvenir coins"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"amenity=vending_machine",
|
||||
"vending~.*souvenir_coins.*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Souvenir Coin Machine"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -22,6 +42,26 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": 1,
|
||||
"color": "blue"
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a souvenir coin machine"
|
||||
},
|
||||
"description": {
|
||||
"en": "Add a machine selling souvenir coins"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=vending_machine",
|
||||
"vending=souvenir_coins"
|
||||
]
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
"opening_hours_24_7",
|
||||
|
@ -110,46 +150,6 @@
|
|||
"level",
|
||||
"check_date"
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": 1,
|
||||
"color": "blue"
|
||||
}
|
||||
],
|
||||
"id": "souvenir_coin",
|
||||
"name": {
|
||||
"en": "Souvenir Coin Machines"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing machines selling souvenir coins"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"amenity=vending_machine",
|
||||
"vending~.*souvenir_coins.*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Souvenir Coin Machine"
|
||||
}
|
||||
},
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a souvenir coin machine"
|
||||
},
|
||||
"description": {
|
||||
"en": "Add a machine selling souvenir coins"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=vending_machine",
|
||||
"vending=souvenir_coins"
|
||||
]
|
||||
}
|
||||
],
|
||||
"filter": [
|
||||
"open_now",
|
||||
"accepts_debit_cards",
|
||||
|
|
|
@ -1,4 +1,24 @@
|
|||
{
|
||||
"id": "souvenir_note",
|
||||
"name": {
|
||||
"en": "Souvenir Banknote Machines"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing machines selling souvenir banknotes"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"amenity=vending_machine",
|
||||
"vending~.*souvenir_notes.*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Souvenir Banknote Machine"
|
||||
}
|
||||
},
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -22,6 +42,26 @@
|
|||
]
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": 1,
|
||||
"color": "blue"
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a souvenir banknote machine"
|
||||
},
|
||||
"description": {
|
||||
"en": "Add a machine selling souvenir banknotes"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=vending_machine",
|
||||
"vending=souvenir_notes"
|
||||
]
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"images",
|
||||
"opening_hours_24_7",
|
||||
|
@ -128,46 +168,6 @@
|
|||
"level",
|
||||
"check_date"
|
||||
],
|
||||
"lineRendering": [
|
||||
{
|
||||
"width": 1,
|
||||
"color": "blue"
|
||||
}
|
||||
],
|
||||
"id": "souvenir_note",
|
||||
"name": {
|
||||
"en": "Souvenir Banknote Machines"
|
||||
},
|
||||
"description": {
|
||||
"en": "Layer showing machines selling souvenir banknotes"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": {
|
||||
"and": [
|
||||
"amenity=vending_machine",
|
||||
"vending~.*souvenir_notes.*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Souvenir Banknote Machine"
|
||||
}
|
||||
},
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a souvenir banknote machine"
|
||||
},
|
||||
"description": {
|
||||
"en": "Add a machine selling souvenir banknotes"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=vending_machine",
|
||||
"vending=souvenir_notes"
|
||||
]
|
||||
}
|
||||
],
|
||||
"filter": [
|
||||
"open_now",
|
||||
"accepts_debit_cards",
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
"de": "Ein Ort, an dem erotische Tanz-, Striptease- oder Lapdances kommerziell durchgeführt werden. "
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "amenity=stripclub",
|
||||
"isOsmCache": false
|
||||
"osmTags": "amenity=stripclub"
|
||||
},
|
||||
"minzoom": 6,
|
||||
"title": {
|
||||
|
|
|
@ -7,9 +7,6 @@
|
|||
"en": "Summary"
|
||||
}
|
||||
},
|
||||
"tagRenderings": [
|
||||
"all_tags"
|
||||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
|
@ -17,11 +14,12 @@
|
|||
"centroid"
|
||||
],
|
||||
"iconSize": "40,40",
|
||||
"label": {
|
||||
"render": "{total_metric}"
|
||||
},
|
||||
"label": "{total_metric}",
|
||||
"labelCss": "background: #ffffffbb",
|
||||
"labelCssClasses": "w-12 text-lg rounded-xl p-1 px-2"
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
"all_tags"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -8,19 +8,42 @@
|
|||
"en": "Find trolley bays for shopping trolleys.",
|
||||
"de": "Finde Einkaufswagenbuchten für Einkaufswagen."
|
||||
},
|
||||
"title": {
|
||||
"en": "Trolley Bay",
|
||||
"de": "Einkaufswagenbucht"
|
||||
},
|
||||
"source": {
|
||||
"osmTags": "amenity=trolley_bay"
|
||||
},
|
||||
"minzoom": 18,
|
||||
"allowMove": {
|
||||
"enableImproveAccuracy": true,
|
||||
"enableRelocation": true
|
||||
"title": {
|
||||
"en": "Trolley Bay",
|
||||
"de": "Einkaufswagenbucht"
|
||||
},
|
||||
"deletion": true,
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/trolley_bay/trolley_bay.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a trolley bay",
|
||||
"de": "eine Einkaufswagenbucht"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=trolley_bay"
|
||||
],
|
||||
"description": {
|
||||
"en": "A trolley bay for parking shopping carts.",
|
||||
"de": "Ein Platz zum Abstellen von Einkaufswagen."
|
||||
}
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
{
|
||||
"id": "covered",
|
||||
|
@ -194,32 +217,9 @@
|
|||
"id": "indoor"
|
||||
}
|
||||
],
|
||||
"presets": [
|
||||
{
|
||||
"title": {
|
||||
"en": "a trolley bay",
|
||||
"de": "eine Einkaufswagenbucht"
|
||||
},
|
||||
"tags": [
|
||||
"amenity=trolley_bay"
|
||||
],
|
||||
"description": {
|
||||
"en": "A trolley bay for parking shopping carts.",
|
||||
"de": "Ein Platz zum Abstellen von Einkaufswagen."
|
||||
"deletion": true,
|
||||
"allowMove": {
|
||||
"enableImproveAccuracy": true,
|
||||
"enableRelocation": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"pointRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"marker": [
|
||||
{
|
||||
"icon": "./assets/layers/trolley_bay/trolley_bay.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -31,7 +31,6 @@
|
|||
],
|
||||
"minzoom": 18,
|
||||
"shownByDefault": false,
|
||||
"isCounted": false,
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Wall or building",
|
||||
|
@ -122,6 +121,7 @@
|
|||
"condition": "_biggest_width_id~*"
|
||||
}
|
||||
],
|
||||
"isCounted": false,
|
||||
"units": [
|
||||
{
|
||||
"width": {
|
||||
|
|
|
@ -50,8 +50,7 @@
|
|||
"title": "OSM Building",
|
||||
"description": "Layer showing buildings that are in OpenStreetMap",
|
||||
"source": {
|
||||
"osmTags": "building~*",
|
||||
"maxCacheAge": 0
|
||||
"osmTags": "building~*"
|
||||
},
|
||||
"minzoom": 18,
|
||||
"doCount": false,
|
||||
|
@ -161,8 +160,7 @@
|
|||
"addr:postcode~*",
|
||||
"addr:street~*"
|
||||
]
|
||||
},
|
||||
"maxCacheAge": 0
|
||||
}
|
||||
},
|
||||
"minzoom": 18,
|
||||
"doCount": false,
|
||||
|
@ -204,8 +202,7 @@
|
|||
"source": {
|
||||
"geoJson": "https://service.pdok.nl/lv/bag/wfs/v2_0?request=GetFeature&service=WFS&version=2.0.0&outputFormat=application%2Fjson%3B%20subtype%3Dgeojson&typeName=bag%3Apand&bbox={x_min}%2C{y_min}%2C{x_max}%2C{y_max}%2CCRS84&srsName=EPSG%3A4326",
|
||||
"geoJsonZoomLevel": 18,
|
||||
"osmTags": "identificatie~*",
|
||||
"maxCacheAge": 0
|
||||
"osmTags": "identificatie~*"
|
||||
},
|
||||
"minzoom": 18,
|
||||
"calculatedTags": [
|
||||
|
@ -395,8 +392,7 @@
|
|||
"source": {
|
||||
"geoJson": "https://service.pdok.nl/lv/bag/wfs/v2_0?request=GetFeature&service=WFS&version=2.0.0&outputFormat=application%2Fjson%3B%20subtype%3Dgeojson&typeName=bag%3Averblijfsobject&bbox={x_min}%2C{y_min}%2C{x_max}%2C{y_max}%2CCRS84&srsName=EPSG%3A4326",
|
||||
"geoJsonZoomLevel": 19,
|
||||
"osmTags": "identificatie~*",
|
||||
"maxCacheAge": 0
|
||||
"osmTags": "identificatie~*"
|
||||
},
|
||||
"minzoom": 18,
|
||||
"calculatedTags": [
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
{
|
||||
"description": {
|
||||
"en": "This map contains elements meant for disaster preparedness and response.",
|
||||
"it": "Questa mappa contiene elementi pensati per la preparazione e risposta ai disastri.",
|
||||
"de": "Diese Karte enthält Elemente, die der Katastrophenvorsorge und dem Katastrophenschutz dienen.",
|
||||
"es": "Este mapa contiene elementos destinados a la preparación y respuesta ante desastres."
|
||||
},
|
||||
"docs": "https://wiki.openstreetmap.org/wiki/Emergency_facilities_and_amenities",
|
||||
"icon": "./assets/themes/disaster_response/CivilDefence.svg",
|
||||
"id": "disaster_response",
|
||||
"socialImage": "./assets/themes/disaster_response/social.svg",
|
||||
"title": {
|
||||
"en": "Disaster response",
|
||||
"it": "Risposta ai disastri",
|
||||
"de": "Katastrophenschutz",
|
||||
"es": "Respuesta ante desastres"
|
||||
},
|
||||
"description": {
|
||||
"en": "This map contains elements meant for disaster preparedness and response.",
|
||||
"it": "Questa mappa contiene elementi pensati per la preparazione e risposta ai disastri.",
|
||||
"de": "Diese Karte enthält Elemente, die der Katastrophenvorsorge und dem Katastrophenschutz dienen.",
|
||||
"es": "Este mapa contiene elementos destinados a la preparación y respuesta ante desastres."
|
||||
},
|
||||
"icon": "./assets/themes/disaster_response/CivilDefence.svg",
|
||||
"socialImage": "./assets/themes/disaster_response/social.svg",
|
||||
"layers": [
|
||||
"hospital",
|
||||
"assembly_point",
|
||||
"disaster_response"
|
||||
]
|
||||
],
|
||||
"docs": "https://wiki.openstreetmap.org/wiki/Emergency_facilities_and_amenities"
|
||||
}
|
|
@ -42,8 +42,7 @@
|
|||
},
|
||||
"building~*"
|
||||
]
|
||||
},
|
||||
"maxCacheAge": 0
|
||||
}
|
||||
},
|
||||
"title": "OSM-gebouw",
|
||||
"tagRenderings": [
|
||||
|
@ -290,7 +289,6 @@
|
|||
"geoJson": "https://betadata.grbosm.site/grb?bbox={x_min},{y_min},{x_max},{y_max}",
|
||||
"geoJsonZoomLevel": 18,
|
||||
"mercatorCrs": true,
|
||||
"maxCacheAge": 0,
|
||||
"idKey": "osm_id"
|
||||
},
|
||||
"name": "GRB geometries",
|
||||
|
@ -587,8 +585,7 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"maxCacheAge": 0
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"id": "items_with_image",
|
||||
"hideFromOverview": true,
|
||||
"title": {
|
||||
"en": "All items with images"
|
||||
},
|
||||
|
@ -8,6 +7,7 @@
|
|||
"en": "A map showing all items on OSM which have an image. This theme is a very bad fit for MapComplete as someone is not able to directly add a picture. However, this theme is mostly here to include this all into the database, which'll allow this to quickly fetch images nearby for other features"
|
||||
},
|
||||
"icon": "./assets/layers/item_with_image/camera.svg",
|
||||
"hideFromOverview": true,
|
||||
"layers": [
|
||||
"item_with_image"
|
||||
]
|
||||
|
|
|
@ -14,8 +14,6 @@
|
|||
"startLat": 0,
|
||||
"startLon": 0,
|
||||
"startZoom": 1,
|
||||
"widenFactor": 0.05,
|
||||
"clustering": false,
|
||||
"layers": [
|
||||
{
|
||||
"id": "mapcomplete-changes",
|
||||
|
@ -26,8 +24,7 @@
|
|||
"source": {
|
||||
"osmTags": "editor~*",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/mapcomplete-changes/tile_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 8,
|
||||
"maxCacheAge": 0
|
||||
"geoJsonZoomLevel": 8
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
|
|
|
@ -14,8 +14,6 @@
|
|||
"startLat": 0,
|
||||
"startLon": 0,
|
||||
"startZoom": 1,
|
||||
"widenFactor": 0.05,
|
||||
"clustering": false,
|
||||
"layers": [
|
||||
{
|
||||
"id": "mapcomplete-changes",
|
||||
|
@ -26,8 +24,7 @@
|
|||
"source": {
|
||||
"osmTags": "editor~*",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/mapcomplete-changes/tile_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 8,
|
||||
"maxCacheAge": 0
|
||||
"geoJsonZoomLevel": 8
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
|
|
|
@ -32,6 +32,5 @@
|
|||
"note",
|
||||
"fixme"
|
||||
],
|
||||
"enableDownload": true,
|
||||
"clustering": false
|
||||
"enableDownload": true
|
||||
}
|
|
@ -41,8 +41,5 @@
|
|||
],
|
||||
"layers": [
|
||||
"windturbine"
|
||||
],
|
||||
"clustering": {
|
||||
"maxZoom": 8
|
||||
}
|
||||
]
|
||||
}
|
|
@ -36,6 +36,5 @@
|
|||
"startLon": 4.351697,
|
||||
"layers": [
|
||||
"osm_community_index"
|
||||
],
|
||||
"clustering": false
|
||||
]
|
||||
}
|
|
@ -44,8 +44,5 @@
|
|||
"enableNoteImports": false,
|
||||
"widenFactor": 1.2,
|
||||
"overpassMaxZoom": 15,
|
||||
"clustering": {
|
||||
"maxZoom": 19
|
||||
},
|
||||
"#note": "The 'overpassMaxZoom' should be exactly the same as or less then the minzzom in overrideAll"
|
||||
}
|
|
@ -231,6 +231,5 @@
|
|||
}
|
||||
],
|
||||
"overpassTimeout": 180,
|
||||
"widenFactor": 0.05,
|
||||
"clustering": false
|
||||
"widenFactor": 0.05
|
||||
}
|
||||
|
|
|
@ -103,9 +103,5 @@
|
|||
}
|
||||
}
|
||||
],
|
||||
"widenFactor": 1.5,
|
||||
"clustering": {
|
||||
"maxZoom": 14,
|
||||
"minNeededElements": 100
|
||||
}
|
||||
"widenFactor": 1.5
|
||||
}
|
|
@ -11,7 +11,6 @@
|
|||
"es": "Todo lo que necesitas para esquiar"
|
||||
},
|
||||
"icon": "./assets/layers/aerialway/chair_lift.svg",
|
||||
"enableTerrain": true,
|
||||
"layers": [
|
||||
"ski_piste",
|
||||
"aerialway",
|
||||
|
@ -50,5 +49,6 @@
|
|||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"enableTerrain": true
|
||||
}
|
||||
|
|
|
@ -23,8 +23,7 @@
|
|||
"title": null,
|
||||
"source": {
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete/master/assets/themes/speelplekken/shadow.geojson",
|
||||
"osmTags": "shadow=yes",
|
||||
"isOsmCache": false
|
||||
"osmTags": "shadow=yes"
|
||||
},
|
||||
"pointRendering": null,
|
||||
"lineRendering": [
|
||||
|
@ -37,11 +36,6 @@
|
|||
{
|
||||
"builtin": "play_forest",
|
||||
"override": {
|
||||
"source": {
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 14,
|
||||
"isOsmCache": true
|
||||
},
|
||||
"minzoom": 12,
|
||||
"calculatedTags": [
|
||||
"_is_shadowed=overlapWith(feat)('shadow').length > 0 ? 'yes': ''",
|
||||
|
@ -53,12 +47,6 @@
|
|||
"builtin": "playground",
|
||||
"override": {
|
||||
"minzoom": 14,
|
||||
"source": {
|
||||
"geoJsonLocal": "http://127.0.0.1:8080/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 14,
|
||||
"isOsmCache": true
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_is_shadowed=overlapWith(feat)('shadow').length > 0 ? 'yes': ''",
|
||||
"_video:id=feat.properties.video === undefined ? undefined : new URL(feat.properties.video).searchParams.get('v')"
|
||||
|
@ -69,12 +57,6 @@
|
|||
"builtin": "village_green",
|
||||
"override": {
|
||||
"minzoom": 14,
|
||||
"source": {
|
||||
"geoJsonLocal": "http://127.0.0.1:8080/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 14,
|
||||
"isOsmCache": true
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_is_shadowed=overlapWith(feat)('shadow').length > 0 ? 'yes': ''",
|
||||
"_video:id=feat.properties.video === undefined ? undefined : new URL(feat.properties.video).searchParams.get('v')"
|
||||
|
@ -85,12 +67,6 @@
|
|||
"builtin": "sport_pitch",
|
||||
"override": {
|
||||
"minzoom": 15,
|
||||
"source": {
|
||||
"geoJsonLocal": "http://127.0.0.1:8080/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 14,
|
||||
"isOsmCache": true
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_is_shadowed=overlapWith(feat)('shadow').length > 0 ? 'yes': ''",
|
||||
"_video:id=feat.properties.video === undefined ? undefined : new URL(feat.properties.video).searchParams.get('v')"
|
||||
|
@ -102,13 +78,7 @@
|
|||
"override": {
|
||||
"calculatedTags": [
|
||||
"_is_shadowed=overlapWith(feat)('shadow').length > 0 ? 'yes': ''"
|
||||
],
|
||||
"source": {
|
||||
"geoJsonLocal": "http://127.0.0.1:8080/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 14,
|
||||
"isOsmCache": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -124,10 +94,7 @@
|
|||
"route=foot",
|
||||
"operator~[pP]rovincie Antwerpen"
|
||||
]
|
||||
},
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson",
|
||||
"geoJsonZoomLevel": 14,
|
||||
"isOsmCache": true
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": "Wandeling <i>{name}</i>",
|
||||
|
@ -260,9 +227,5 @@
|
|||
51.23978120350654
|
||||
]
|
||||
],
|
||||
"widenFactor": 1.2,
|
||||
"clustering": {
|
||||
"maxZoom": 6,
|
||||
"minNeededElements": 100
|
||||
}
|
||||
"widenFactor": 1.2
|
||||
}
|
||||
|
|
|
@ -23,8 +23,7 @@
|
|||
"osmTags": "Lichtmastnummer~*",
|
||||
"#geoJson": "https://opendata.arcgis.com/datasets/ba37cdb372064b3199c548b75d16a609_0.geojson",
|
||||
"geoJson": "https://robinlinde.github.io/tiles/assen_street_lighting/{z}/{x}/{y}.json",
|
||||
"geoJsonZoomLevel": 16,
|
||||
"isOsmCache": false
|
||||
"geoJsonZoomLevel": 16
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_closest_osm_street_lamp=closest(feat)('street_lamps')?.properties?.id",
|
||||
|
|
|
@ -71,9 +71,5 @@
|
|||
"tree_node"
|
||||
],
|
||||
"widenFactor": 0.2,
|
||||
"osmApiTileSize": 18,
|
||||
"clustering": {
|
||||
"maxZoom": 19,
|
||||
"minNeededElements": 25
|
||||
}
|
||||
"osmApiTileSize": 18
|
||||
}
|
||||
|
|
|
@ -32,8 +32,7 @@
|
|||
"source": {
|
||||
"geoJson": "https://osm-uk-addresses.russss.dev/inspire/{z}/{x}/{y}.json",
|
||||
"osmTags": "inspireid~*",
|
||||
"geoJsonZoomLevel": 18,
|
||||
"isOsmCache": false
|
||||
"geoJsonZoomLevel": 18
|
||||
},
|
||||
"minzoom": 18,
|
||||
"calculatedTags": [
|
||||
|
@ -69,8 +68,7 @@
|
|||
"id!~node/.*"
|
||||
]
|
||||
},
|
||||
"geoJsonZoomLevel": 16,
|
||||
"isOsmCache": false
|
||||
"geoJsonZoomLevel": 16
|
||||
},
|
||||
"name": "Addresses to check",
|
||||
"minzoom": 18,
|
||||
|
@ -703,9 +701,5 @@
|
|||
],
|
||||
"enableShareScreen": false,
|
||||
"enableMoreQuests": false,
|
||||
"widenFactor": 1.01,
|
||||
"clustering": {
|
||||
"minNeededFeatures": 25,
|
||||
"maxZoom": 16
|
||||
}
|
||||
"widenFactor": 1.01
|
||||
}
|
||||
|
|
|
@ -3,45 +3,33 @@
|
|||
"title": {
|
||||
"nl": "Velopark naar OpenStreetMap sync tool"
|
||||
},
|
||||
"shortDescription": {
|
||||
"en": "A tool to import data from velopark.be into OpenStreetMap",
|
||||
"nl": "Een hulpmiddel om data van velopark.be in OpenStreetMap in te laden"
|
||||
},
|
||||
"mustHaveLanguage": [
|
||||
"nl"
|
||||
],
|
||||
"description": {
|
||||
"en": "<p><a href='https://velopark.be' target='_blank'>Velopark.be</a> is a website collecting data about bicycle parkings in a semi-crowdsourced way. However, only 'authorized' instances are allowed to make changes there, in practice the operator of the bicycle parking such as SNCB, de Lijn or the municipality. They have now decided to synchronize their dataset with OpenStreetMap, and this MapComplete-instance is set up to help link and import their data into OpenStreetMap.</p> How to use: <ul><li>A velopark-icon on the map (yellow with bicycle silhouette) represents a bicycle known by Velopark but not yet known by OpenStreetMap</li><li>Blue pins are bicycle parkings known by OpenStreetMap</li><li>Light blue pins are bicycle parkings known by OpenStreetMap with a reference to Velopark.be (<span class='literal-code'>ref-velopark=*</span>)</li><li>Click a velopark item, you can either link it with a nearby OSM-bicycle parking or create a new bicycle parking. Note that the geometry of Velopark is often incorrect and can be a few up till 100 meters away from the actual bicycle parking. Use aerial imagery, linked images and streetview to determine the correct location</li><li>Once linked, you can compare the Velopark- and OSM-attributes and apply correct attributes</li><li>If Velopark has an image, you can also link the image</li></ul> That's it! Thanks for helping to import this!",
|
||||
"nl": "<p><a href='https://velopark.be' target='_blank'>Velopark.be</a> is een website die data verzamelt over fietsenstallingen in een semi-crowdsource manier. Hierbij kunnen enkel geautorizeerde gebruikers data bijdragen, in de praktijk de uitbaters van de fietsenstallingen zoals de bevoegde gemeentebesturen, de NMBS of de Lijn. Velopark.be heeft nu beslist om hun data met OpenStreetMap te synchronizeren. Deze website is de tool om van Velopark.be naar OpenStreetMap te gaan en hun data te importeren.</p> Hoe te gebruiken? <ul><li>Een velopark-logo op de kaart (geel met een fietssilhouette) duidt een fietsenstalling aan die gekend is in Velopark maar nog niet gekend (of gelinkt) is aan een fietsenstalling in OpenStreetMap</li><li>Een blauwe pin duidt een fietsenstalling aan die gekend is in OpenStreetMap</li><li>Een licht-blauwe pin duidt een fietsenstalling aan uit OpenStreetMap die een link heeft naar Velopark.be (<span class='literal-code'>ref-velopark=*</span>)</li><li>Als je op een velopark-item klikt op, kan je deze linken met een fietsenstalling in de buurt (<25m) of een nieuwe fietstalling aan OpenStreetMap toevoegen. Let op: de geometrie van Velopark is zelden correct en wijkt makkelijk 10 meter of meer af van de echte locatie - in uitzonderlijke gevallen zelfs tot meer dan 100 meter. Gebruik de meest recente luchtfoto's, de gelinkte foto's en mapillary om de correcte locatie te bepalen</li><li>Eens gelinkt, kan je de Velopark- en OSM-attributen vergelijken en de correcte attributen toepassen in OpenStreetMap</li><li>Indien velopark een foto heeft, kan je die ook nog linken</li></ul> Dat is het! Bedankt om mee te helpen!"
|
||||
},
|
||||
"shortDescription": {
|
||||
"en": "A tool to import data from velopark.be into OpenStreetMap",
|
||||
"nl": "Een hulpmiddel om data van velopark.be in OpenStreetMap in te laden"
|
||||
},
|
||||
"descriptionTail": {
|
||||
"*": "<h3>Maintainer tools</h3><ul><li><a class='link-underline' href='https://maproulette.org/api/v2/challenge/view/43282' download='Velopark_sync_2024-01-15.geojson'>Download the first sync results</a></li></ul>"
|
||||
},
|
||||
"hideFromOverview": true,
|
||||
"icon": "./assets/themes/velopark/velopark.svg",
|
||||
"mustHaveLanguage": [
|
||||
"nl"
|
||||
],
|
||||
"lockLocation": [
|
||||
[
|
||||
2.51357303225,
|
||||
49.5294835476
|
||||
],
|
||||
[
|
||||
6.15665815596,
|
||||
51.4750237087
|
||||
]
|
||||
],
|
||||
"startZoom": 18,
|
||||
"startLat": 51.03753,
|
||||
"startLon": 3.71025,
|
||||
"startZoom": 18,
|
||||
"defaultBackgroundId": "photo",
|
||||
"enableNoteImports": false,
|
||||
"hideFromOverview": true,
|
||||
"layers": [
|
||||
{
|
||||
"id": "velopark_maproulette",
|
||||
"description": "Maproulette challenge containing velopark data",
|
||||
"source": {
|
||||
"osmTags": "mr_taskId~*",
|
||||
"geoJson": "https://maproulette.org/api/v2/challenge/view/43282",
|
||||
"isOsmCache": false
|
||||
"geoJson": "https://maproulette.org/api/v2/challenge/view/43282"
|
||||
},
|
||||
"title": {
|
||||
"render": "Velopark parking <b>{mr_velopark_id}</b>"
|
||||
|
@ -348,5 +336,16 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"lockLocation": [
|
||||
[
|
||||
2.51357303225,
|
||||
49.5294835476
|
||||
],
|
||||
[
|
||||
6.15665815596,
|
||||
51.4750237087
|
||||
]
|
||||
],
|
||||
"enableNoteImports": false
|
||||
}
|
||||
|
|
|
@ -27,8 +27,7 @@
|
|||
"description": "Laag op basis van externe data",
|
||||
"source": {
|
||||
"osmTags": "OBJECTID~*",
|
||||
"geoJson": "https://opendata.arcgis.com/datasets/5b6953ac5a9d4616a7dc75ab0beeac2f_0.geojson",
|
||||
"isOsmCache": false
|
||||
"geoJson": "https://opendata.arcgis.com/datasets/5b6953ac5a9d4616a7dc75ab0beeac2f_0.geojson"
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_closest_osm_waste_basket=closest(feat)('waste_basket')?.properties?.id",
|
||||
|
@ -71,8 +70,7 @@
|
|||
"description": "Laag op basis van externe data",
|
||||
"source": {
|
||||
"osmTags": "OBJECTID~*",
|
||||
"geoJson": "https://opendata.arcgis.com/datasets/edb893998e27461b8ed82aad9854d27d_0.geojson",
|
||||
"isOsmCache": false
|
||||
"geoJson": "https://opendata.arcgis.com/datasets/edb893998e27461b8ed82aad9854d27d_0.geojson"
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_closest_osm_recycling=closest(feat)('recycling')?.properties?.id",
|
||||
|
|
|
@ -275,6 +275,5 @@
|
|||
"enableLayers": false,
|
||||
"enableSearch": false,
|
||||
"enableBackgroundLayerSelection": false,
|
||||
"widenFactor": 0.05,
|
||||
"clustering": false
|
||||
"widenFactor": 0.05
|
||||
}
|
||||
|
|
|
@ -26,6 +26,8 @@ export default class LayoutSource extends FeatureSourceMerger {
|
|||
|
||||
private readonly supportsForceDownload: UpdatableFeatureSource[]
|
||||
|
||||
private readonly fromCache: Map<string, LocalStorageFeatureSource>
|
||||
private static readonly fromCacheZoomLevel = 15
|
||||
constructor(
|
||||
layers: LayerConfig[],
|
||||
featureSwitches: FeatureSwitchState,
|
||||
|
@ -43,13 +45,21 @@ export default class LayoutSource extends FeatureSourceMerger {
|
|||
|
||||
const geojsonlayers = layers.filter((layer) => layer.source.geojsonSource !== undefined)
|
||||
const osmLayers = layers.filter((layer) => layer.source.geojsonSource === undefined)
|
||||
const fromCache = osmLayers.map(
|
||||
(l) =>
|
||||
new LocalStorageFeatureSource(backend, l, 15, mapProperties, {
|
||||
isActive: isDisplayed(l.id),
|
||||
maxAge: l.maxAgeOfCache,
|
||||
})
|
||||
const fromCache = new Map<string, LocalStorageFeatureSource>()
|
||||
for (const layer of osmLayers) {
|
||||
const src = new LocalStorageFeatureSource(
|
||||
backend,
|
||||
layer,
|
||||
LayoutSource.fromCacheZoomLevel,
|
||||
mapProperties,
|
||||
{
|
||||
isActive: isDisplayed(layer.id),
|
||||
maxAge: layer.maxAgeOfCache,
|
||||
}
|
||||
)
|
||||
fromCache.set(layer.id, src)
|
||||
}
|
||||
|
||||
const mvtSources: UpdatableFeatureSource[] = osmLayers
|
||||
.filter((f) => mvtAvailableLayers.has(f.id))
|
||||
.map((l) => LayoutSource.setupMvtSource(l, mapProperties, isDisplayed(l.id)))
|
||||
|
@ -92,9 +102,10 @@ export default class LayoutSource extends FeatureSourceMerger {
|
|||
LayoutSource.setupGeojsonSource(l, mapProperties, isDisplayed(l.id))
|
||||
)
|
||||
|
||||
super(...geojsonSources, ...fromCache, ...mvtSources, ...nonMvtSources)
|
||||
super(...geojsonSources, ...Array.from(fromCache.values()), ...mvtSources, ...nonMvtSources)
|
||||
|
||||
this.isLoading = isLoading
|
||||
this.fromCache = fromCache
|
||||
supportsForceDownload.push(...geojsonSources)
|
||||
supportsForceDownload.push(...mvtSources) // Non-mvt sources are handled by overpass
|
||||
this.supportsForceDownload = supportsForceDownload
|
||||
|
|
|
@ -92,7 +92,6 @@ export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, L
|
|||
this._includeClosedNotesDays +
|
||||
"&bbox={x_min},{y_min},{x_max},{y_max}",
|
||||
geoJsonZoomLevel: 10,
|
||||
maxCacheAge: 0,
|
||||
},
|
||||
/* We need to set 'pass_all_features'
|
||||
There are probably many note_import-layers, and we don't want the first one to gobble up all notes and then discard them...
|
||||
|
|
|
@ -135,6 +135,10 @@ export class UpdateLegacyLayer extends DesugaringStep<
|
|||
delete config["rotation"]
|
||||
delete config["wayHandling"]
|
||||
delete config["hideUnderlayingFeaturesMinPercentage"]
|
||||
const src = config.source
|
||||
delete src["isOsmCache"]
|
||||
delete src["maxCacheAge"]
|
||||
delete src["widenFactor"]
|
||||
|
||||
for (const mapRenderingElement of config["mapRendering"] ?? []) {
|
||||
if (mapRenderingElement["iconOverlays"] !== undefined) {
|
||||
|
|
|
@ -1615,6 +1615,18 @@ export class ValidateLayer extends Conversion<
|
|||
context.enters("doCount").err("Use `isCounted` instead of `doCount`")
|
||||
}
|
||||
|
||||
if (json.source) {
|
||||
const src = json.source
|
||||
if (src["isOsmCache"] !== undefined) {
|
||||
context.enters("source").err("isOsmCache is deprecated")
|
||||
}
|
||||
if (src["maxCacheAge"] !== undefined) {
|
||||
context
|
||||
.enters("source")
|
||||
.err("maxCacheAge is deprecated; it is " + src["maxCacheAge"])
|
||||
}
|
||||
}
|
||||
|
||||
return { raw: json, parsed: layerConfig }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,15 +74,6 @@ export interface LayerConfigJson {
|
|||
* Every source must set which tags have to be present in order to load the given layer.
|
||||
*/
|
||||
osmTags: TagConfigJson
|
||||
/**
|
||||
* question: How long (in seconds) is the data allowed to remain cached until it must be refreshed?
|
||||
* The maximum amount of seconds that a tile is allowed to linger in the cache
|
||||
*
|
||||
* type: nat
|
||||
* default: 30 days
|
||||
* group: expert
|
||||
*/
|
||||
maxCacheAge?: number
|
||||
}
|
||||
| {
|
||||
/**
|
||||
|
@ -109,17 +100,6 @@ export interface LayerConfigJson {
|
|||
* ifunset: This is not a tiled geojson
|
||||
*/
|
||||
geoJsonZoomLevel?: number
|
||||
/**
|
||||
* Indicates that the upstream geojson data is OSM-derived.
|
||||
* Useful for e.g. merging or for scripts generating this cache.
|
||||
* This also indicates that making changes on this data is possible
|
||||
*
|
||||
* question: Is this geojson a cache of OpenStreetMap data?
|
||||
* ifunset: This is not an OpenStreetMap cache
|
||||
* iftrue: this is based on OpenStreetMap and can thus be edited
|
||||
* group: expert
|
||||
*/
|
||||
isOsmCache?: boolean
|
||||
/**
|
||||
* Some API's use a mercator-projection (EPSG:900913) instead of WGS84. Set the flag `mercatorCrs: true` in the source for this
|
||||
*
|
||||
|
|
|
@ -417,14 +417,6 @@ export interface LayoutConfigJson {
|
|||
*/
|
||||
overpassTimeout?: number
|
||||
|
||||
/**
|
||||
* When a query is run, the data within bounds of the visible map is loaded.
|
||||
* However, users tend to pan and zoom a lot. It is pretty annoying if every single pan means a reloading of the data.
|
||||
* For this, the bounds are widened in order to make a small pan still within bounds of the loaded data.
|
||||
*
|
||||
* IF widenfactor is 1, this feature is disabled. A recommended value is between 1 and 3
|
||||
*/
|
||||
widenFactor?: number
|
||||
/**
|
||||
* At low zoom levels, overpass is used to query features.
|
||||
* At high zoom level, the OSM api is used to fetch one or more BBOX aligning with a slippy tile.
|
||||
|
|
|
@ -62,7 +62,6 @@ describe("ReplaceGeometryAction", () => {
|
|||
name: "All OSM-buildings",
|
||||
source: {
|
||||
osmTags: "building~*",
|
||||
maxCacheAge: 0,
|
||||
},
|
||||
calculatedTags: ["_surface:strict:=feat.get('_surface')"],
|
||||
lineRendering: [
|
||||
|
@ -269,7 +268,6 @@ describe("ReplaceGeometryAction", () => {
|
|||
"https://betadata.grbosm.site/grb?bbox={x_min},{y_min},{x_max},{y_max}",
|
||||
geoJsonZoomLevel: 18,
|
||||
mercatorCrs: true,
|
||||
maxCacheAge: 0,
|
||||
},
|
||||
name: "GRB geometries",
|
||||
title: "GRB outline",
|
||||
|
|
Loading…
Reference in a new issue