Refactoring: remove old and obsolete data fields in themes and layers

This commit is contained in:
Pieter Vander Vennet 2024-02-26 15:08:07 +01:00
parent 130ae82e90
commit 922cebf9d1
49 changed files with 574 additions and 664 deletions

View file

@ -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}"
}
}
}

View file

@ -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"
}

View file

@ -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
}
}

View file

@ -35,7 +35,6 @@
}
},
"minzoom": 19,
"doCount": false,
"title": {
"render": {
"en": "Climbing opportunity?",
@ -148,5 +147,6 @@
}
]
}
]
],
"doCount": false
}

View file

@ -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(';') })()"

View file

@ -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"
}

View file

@ -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",

View file

@ -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"
]
}

View file

@ -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": {

View file

@ -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"
}

View file

@ -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",

View file

@ -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>&emsp;' + value.resolved.descriptionHTML}).join('<br>')"

View file

@ -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
}

View file

@ -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}"
}
}
}

View file

@ -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",

View file

@ -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",

View file

@ -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": {

View file

@ -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"
]
}

View file

@ -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"
}
]
}
]
}

View file

@ -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": {

View file

@ -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": [

View file

@ -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"
}

View file

@ -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": {

View file

@ -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"
]

View file

@ -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": {

View file

@ -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": {

View file

@ -32,6 +32,5 @@
"note",
"fixme"
],
"enableDownload": true,
"clustering": false
"enableDownload": true
}

View file

@ -41,8 +41,5 @@
],
"layers": [
"windturbine"
],
"clustering": {
"maxZoom": 8
}
]
}

View file

@ -36,6 +36,5 @@
"startLon": 4.351697,
"layers": [
"osm_community_index"
],
"clustering": false
]
}

View file

@ -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"
}

View file

@ -231,6 +231,5 @@
}
],
"overpassTimeout": 180,
"widenFactor": 0.05,
"clustering": false
"widenFactor": 0.05
}

View file

@ -103,9 +103,5 @@
}
}
],
"widenFactor": 1.5,
"clustering": {
"maxZoom": 14,
"minNeededElements": 100
}
"widenFactor": 1.5
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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",

View file

@ -71,9 +71,5 @@
"tree_node"
],
"widenFactor": 0.2,
"osmApiTileSize": 18,
"clustering": {
"maxZoom": 19,
"minNeededElements": 25
}
"osmApiTileSize": 18
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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",

View file

@ -275,6 +275,5 @@
"enableLayers": false,
"enableSearch": false,
"enableBackgroundLayerSelection": false,
"widenFactor": 0.05,
"clustering": false
"widenFactor": 0.05
}

View file

@ -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

View file

@ -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...

View file

@ -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) {

View file

@ -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 }
}
}

View file

@ -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
*

View file

@ -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.

View file

@ -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",