From 1daacd6501032f9da6d2c1cc95302568a90751d5 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 8 Apr 2025 14:00:51 +0200 Subject: [PATCH 1/3] Themes(trees): disable blurring as we have too many false positives --- assets/layers/tree_node/tree_node.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/layers/tree_node/tree_node.json b/assets/layers/tree_node/tree_node.json index d97812fb06..13c3cbfec4 100644 --- a/assets/layers/tree_node/tree_node.json +++ b/assets/layers/tree_node/tree_node.json @@ -222,7 +222,7 @@ } ], "tagRenderings": [ - "images", + "images_no_blur", { "id": "plantnet", "render": "{plantnet_detection()}" From 8d8b34dafc07244c04e3d2722936e0fb0fefc183 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 8 Apr 2025 14:51:12 +0200 Subject: [PATCH 2/3] Themes(grave): add support for cemetery=grave --- assets/layers/grave/grave.json | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/assets/layers/grave/grave.json b/assets/layers/grave/grave.json index 0c72cb6247..011b3b122a 100644 --- a/assets/layers/grave/grave.json +++ b/assets/layers/grave/grave.json @@ -13,7 +13,12 @@ "ca": "Les tombes (i les tombes) indiquen on va ser enterrada una persona. En aquest mapa, es poden gravar i es pot fer un enllaç a la Viquipèdia" }, "source": { - "osmTags": "historic=tomb" + "osmTags": { + "or": [ + "historic=tomb", + "cemetery=grave" + ] + } }, "minzoom": 15, "title": { @@ -44,16 +49,15 @@ "presets": [ { "title": { - "en": "a tombstone", - "de": "ein Grabstein", - "es": "una lápida", - "ca": "una làpida" + "en": "a grave", + "nl": "een grafsteen", + "de": "ein Grabstein" }, "tags": [ - "historic=tomb" + "cemetery=grave" ], "description": { - "en": "A tombstone is a physical object which indicates that one or more persons are buried here. It generally has the name, birth date and death date of the person or persons as inscription.", + "en": "A grave is a physical object which indicates that one or more persons are buried here. It generally has the name, birth date and death date of the person or persons as inscription.", "de": "Ein Grabstein ist ein physischer Gegenstand, der anzeigt, dass eine oder mehrere Personen hier begraben sind. Er trägt in der Regel den Namen, das Geburts- und das Sterbedatum der Person oder Personen als Inschrift.", "uk": "Надгробок - це фізичний об'єкт, який вказує на те, що тут похована одна або кілька осіб. Як правило, на ньому викарбувано ім'я, дату народження та дату смерті особи чи осіб.", "es": "Una lápida es un objeto físico que indica que una o más personas están enterradas aquí. Generalmente tiene el nombre, la fecha de nacimiento y la fecha de defunción de la persona o personas como inscripción.", From 440d4fbeb8855ec6c231e80f050a597f65a4529d Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 8 Apr 2025 14:51:35 +0200 Subject: [PATCH 3/3] Fix: fix some crashes for people who have used dev at the same time and have the new theme-history --- src/Logic/State/SearchState.ts | 12 +++++++++++- src/UI/BigComponents/ThemesList.svelte | 12 +++++++++++- src/UI/Search/ThemeResults.svelte | 14 ++++++++++++-- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/Logic/State/SearchState.ts b/src/Logic/State/SearchState.ts index 59b59d9bb0..cb9992775b 100644 --- a/src/Logic/State/SearchState.ts +++ b/src/Logic/State/SearchState.ts @@ -70,7 +70,17 @@ export default class SearchState { const themeSearch = ThemeSearchIndex.fromState(state) this.themeSuggestions = this.searchTerm.mapD( - (query) => themeSearch.data.search(query, 3), + (query) => { + const results = themeSearch.data.search(query, 3) + const deduped: MinimalThemeInformation[] = [] + for (const result of results) { + if (deduped.some(th => th.id === result.id)) { + continue + } + deduped.push(result) + } + return deduped + }, [themeSearch] ) diff --git a/src/UI/BigComponents/ThemesList.svelte b/src/UI/BigComponents/ThemesList.svelte index 7bd9d9f6fd..c53da0ac1e 100644 --- a/src/UI/BigComponents/ThemesList.svelte +++ b/src/UI/BigComponents/ThemesList.svelte @@ -14,6 +14,16 @@ export let state: { osmConnection: OsmConnection } export let onlyIcons: boolean = false export let hasSelection: boolean = true + let themesFiltered: MinimalThemeInformation[] = [] + for (const theme of themes) { + if (!theme) { + continue + } + if (themesFiltered.some(th => th.id === theme.id)) { + continue + } + themesFiltered.push(theme) + }
@@ -23,7 +33,7 @@ ? "flex flex-wrap items-center justify-center gap-x-2" : "theme-list my-2 gap-4 md:grid md:grid-flow-row md:grid-cols-2 lg:grid-cols-3"} > - {#each Utils.NoNull(themes) as theme (theme.id)} + {#each Utils.NoNull(themesFiltered) as theme (theme.id)} {#if $search && hasSelection && themes?.[0] === theme}