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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user