feat: Marker-Management optimiert und Plus-Icon für überlappende Marker hinzugefügt
- 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.
This commit is contained in:
@@ -751,7 +751,6 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat
|
|||||||
const smsfunkmodemMarkersLayerRef = useRef(null);
|
const smsfunkmodemMarkersLayerRef = useRef(null);
|
||||||
const ulafMarkersLayerRef = useRef(null);
|
const ulafMarkersLayerRef = useRef(null);
|
||||||
const sonstigeMarkersLayerRef = useRef(null);
|
const sonstigeMarkersLayerRef = useRef(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!gisSystemStaticLoaded || !map) return; // Sicherstellen, dass die Karte und Daten geladen sind
|
if (!gisSystemStaticLoaded || !map) return; // Sicherstellen, dass die Karte und Daten geladen sind
|
||||||
|
|
||||||
@@ -791,6 +790,9 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat
|
|||||||
(newMarkers) => {
|
(newMarkers) => {
|
||||||
setState(newMarkers); // Zustand aktualisieren
|
setState(newMarkers); // Zustand aktualisieren
|
||||||
newMarkers.forEach((marker) => ref.current.addLayer(marker)); // Marker zur LayerGroup hinzufügen
|
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,
|
GisSystemStatic,
|
||||||
priorityConfig
|
priorityConfig
|
||||||
|
|||||||
Reference in New Issue
Block a user