From b47bb4a77116257ce3e99454697845e15d48bd24 Mon Sep 17 00:00:00 2001 From: vcoppe Date: Sun, 7 Dec 2025 14:11:31 +0100 Subject: [PATCH] fix overpass layers, and add cemeteries, closes #235 --- website/src/lib/assets/layers.ts | 41 +++++++++++++++++-- .../map/layer-control/overpass-layer.ts | 10 +++-- website/src/locales/en.json | 1 + 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/website/src/lib/assets/layers.ts b/website/src/lib/assets/layers.ts index 0e548cf4d..ce31acf54 100644 --- a/website/src/lib/assets/layers.ts +++ b/website/src/lib/assets/layers.ts @@ -836,6 +836,7 @@ export const overpassTree: LayerTreeType = { shower: true, shelter: true, barrier: true, + cemetery: true, }, tourism: { attraction: true, @@ -919,6 +920,7 @@ export const defaultOverpassQueries: LayerTreeType = { shower: false, shelter: false, barrier: false, + cemetery: false, }, tourism: { attraction: false, @@ -1053,6 +1055,7 @@ export const defaultOverpassTree: LayerTreeType = { shower: false, shelter: false, barrier: false, + cemetery: false, }, tourism: { attraction: false, @@ -1099,9 +1102,7 @@ type OverpassQueryData = { svg: string; color: string; }; - tags: - | Record - | Record[]; + tags: Record | Record[]; symbol?: string; }; @@ -1182,6 +1183,20 @@ export const overpassQueryData: Record = { }, symbol: 'Shelter', }, + cemetery: { + icon: { + svg: '', + color: '#000000', + }, + tags: [ + { + landuse: 'cemetery', + }, + { + amenity: 'grave_yard', + }, + ], + }, 'fuel-station': { icon: { svg: Fuel, @@ -1218,7 +1233,25 @@ export const overpassQueryData: Record = { color: '#000000', }, tags: { - barrier: true, + barrier: [ + 'bar', + 'barrier_board', + 'block', + 'chain', + 'cycle_barrier', + 'gate', + 'hampshire_gate', + 'horse_stile', + 'kissing_gate', + 'lift_gate', + 'motorcycle_barrier', + 'sliding_beam', + 'sliding_gate', + 'stile', + 'swing_gate', + 'turnstile', + 'wicket_gate', + ], }, }, attraction: { diff --git a/website/src/lib/components/map/layer-control/overpass-layer.ts b/website/src/lib/components/map/layer-control/overpass-layer.ts index 852a68796..8721e629b 100644 --- a/website/src/lib/components/map/layer-control/overpass-layer.ts +++ b/website/src/lib/components/map/layer-control/overpass-layer.ts @@ -285,10 +285,12 @@ function getQuery(query: string) { } } -function getQueryItem(tags: Record) { - let arrayEntry = Object.values(tags).find((value) => Array.isArray(value)); +function getQueryItem(tags: Record) { + let arrayEntry = Object.entries(tags).find((entry): entry is [string, string[]] => + Array.isArray(entry[1]) + ); if (arrayEntry !== undefined) { - return arrayEntry + return arrayEntry[1] .map( (val) => `nwr${Object.entries(tags) @@ -311,7 +313,7 @@ function belongsToQuery(element: any, query: string) { } } -function belongsToQueryItem(element: any, tags: Record) { +function belongsToQueryItem(element: any, tags: Record) { return Object.entries(tags).every(([tag, value]) => Array.isArray(value) ? value.includes(element.tags[tag]) : element.tags[tag] === value ); diff --git a/website/src/locales/en.json b/website/src/locales/en.json index ef7461c8a..3455d54fe 100644 --- a/website/src/locales/en.json +++ b/website/src/locales/en.json @@ -352,6 +352,7 @@ "water": "Water", "shower": "Shower", "shelter": "Shelter", + "cemetery": "Cemetery", "motorized": "Cars and Motorcycles", "fuel-station": "Fuel Station", "parking": "Parking",