fix: Geräte-Marker werden nur noch über LayerGroups verwaltet, doppelte Marker auf Karte verhindert

Geräte-Marker werden vor dem Hinzufügen aus LayerGroups entfernt und nur dort hinzugefügt
Keine direkte .addTo(map) mehr für Geräte-Marker
Debug-Ausgabe für Marker-Anzahl pro LayerGroup
Problem mit mehrfachen Markern auf der Karte behoben
This commit is contained in:
ISA
2025-08-20 14:54:50 +02:00
parent d68b17c382
commit ee5319a928
6 changed files with 9 additions and 9 deletions

View File

@@ -57,16 +57,16 @@ const useDynamicDeviceLayers = (map, GisSystemStatic, mapLayersVisibility, prior
if (layerRefs.current[key]) {
// Entferne alle Marker aus der LayerGroup, bevor neue hinzugefügt werden
layerRefs.current[key].clearLayers();
(Array.isArray(newMarkers) ? newMarkers : []).forEach(marker => {
newMarkers.forEach(marker => {
// Nur LayerGroup verwenden, nicht direkt auf map
marker.addTo(layerRefs.current[key]);
});
// Debug: Anzahl Marker in LayerGroup
/* console.log(
console.log(
`[DeviceLayers] ${
layerRefs.current[key].getLayers().length
} Marker in LayerGroup für ${key}`
); */
);
}
setMarkerStates(prev => ({ ...prev, [key]: newMarkers }));
},
@@ -86,7 +86,7 @@ const useDynamicDeviceLayers = (map, GisSystemStatic, mapLayersVisibility, prior
Object.entries(markerStates).forEach(([key, markers]) => {
const isVisible = mapLayersVisibility[key] ?? true; // undefined = true
(Array.isArray(markers) ? markers : []).forEach(marker => {
markers.forEach(marker => {
const hasLayer = map.hasLayer(marker);
// Logik korrigiert: