From 01843c88657e2d78062b770393d380563ddf5f7a Mon Sep 17 00:00:00 2001 From: ISA Date: Thu, 28 Nov 2024 12:00:08 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20Marker-Management=20optimiert=20und=20P?= =?UTF-8?q?lus-Icon=20f=C3=BCr=20=C3=BCberlappende=20Marker=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Problem mit doppelten Icons behoben: Alte Marker werden vor jedem Update zuverlässig entfernt (clearLayers). - Zentrale Verwaltung aller Marker-Layer-Gruppen eingeführt (Refactoring mit layerGroups). - Plus-Icon für überlappende Marker hinzugefügt, um bessere Übersicht bei Markern an derselben Position zu gewährleisten (checkOverlappingMarkers). - Regelmäßige Updates der Marker-Gruppen via setInterval implementiert. --- components/MapComponent.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/MapComponent.js b/components/MapComponent.js index 9424f6619..aaac6ce90 100644 --- a/components/MapComponent.js +++ b/components/MapComponent.js @@ -751,7 +751,6 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat const smsfunkmodemMarkersLayerRef = useRef(null); const ulafMarkersLayerRef = useRef(null); const sonstigeMarkersLayerRef = useRef(null); - useEffect(() => { if (!gisSystemStaticLoaded || !map) return; // Sicherstellen, dass die Karte und Daten geladen sind @@ -791,6 +790,9 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat (newMarkers) => { setState(newMarkers); // Zustand aktualisieren newMarkers.forEach((marker) => ref.current.addLayer(marker)); // Marker zur LayerGroup hinzufügen + + // Überprüfe auf überlappende Marker und füge das Plus-Icon hinzu + checkOverlappingMarkers(map, newMarkers, plusRoundIcon); }, GisSystemStatic, priorityConfig