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

@@ -24,4 +24,4 @@ NEXT_PUBLIC_USE_MOCKS=true
# z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen # z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.328 NEXT_PUBLIC_APP_VERSION=1.1.329

View File

@@ -25,4 +25,4 @@ NEXT_PUBLIC_USE_MOCKS=false
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.328 NEXT_PUBLIC_APP_VERSION=1.1.329

View File

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

BIN
nodemap-1.1.328.zip Normal file

Binary file not shown.

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.328", "version": "1.1.329",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "nodemap", "name": "nodemap",
"version": "1.1.328", "version": "1.1.329",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.328", "version": "1.1.329",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",