fix: Marker-Duplikate & Spiderfy repariert | version 1.1.230
This commit is contained in:
@@ -3,7 +3,7 @@ import { useEffect, useRef, useState } from "react";
|
||||
import L from "leaflet";
|
||||
import { createAndSetDevices } from "../utils/devices/createAndSetDevices";
|
||||
import { checkOverlappingMarkers } from "../utils/mapUtils";
|
||||
import plusRoundIcon from "../components/icons/devices/overlapping/PlusRoundIcon";
|
||||
import plusRoundIcon from "@/components/icons/devices/overlapping/PlusRoundIcon";
|
||||
|
||||
/**
|
||||
* Dynamisch GIS-System-Marker erstellen & Sichtbarkeit steuern.
|
||||
@@ -31,14 +31,27 @@ const useDynamicDeviceLayers = (map, GisSystemStatic, mapLayersVisibility, prior
|
||||
createAndSetDevices(
|
||||
IdSystem,
|
||||
newMarkers => {
|
||||
setMarkerStates(prev => ({ ...prev, [key]: newMarkers }));
|
||||
const oldMarkers = markerStates[key];
|
||||
|
||||
// ❌ NICHT direkt zur Karte hinzufügen
|
||||
// Sichtbarkeit folgt im 2. useEffect
|
||||
checkOverlappingMarkers(map, newMarkers, plusRoundIcon, oms);
|
||||
// Entferne alte Marker aus Karte und OMS
|
||||
if (oldMarkers && Array.isArray(oldMarkers)) {
|
||||
oldMarkers.forEach(marker => {
|
||||
if (map.hasLayer(marker)) {
|
||||
map.removeLayer(marker);
|
||||
}
|
||||
if (oms) {
|
||||
oms.removeMarker(marker);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Neue Marker setzen
|
||||
setMarkerStates(prev => ({ ...prev, [key]: newMarkers }));
|
||||
},
|
||||
GisSystemStatic,
|
||||
priorityConfig
|
||||
priorityConfig,
|
||||
undefined,
|
||||
oms
|
||||
);
|
||||
});
|
||||
}, [map, GisSystemStatic, priorityConfig]);
|
||||
|
||||
@@ -4,22 +4,22 @@ import { useEffect, useState } from "react";
|
||||
import { useDispatch, useSelector } from "react-redux";
|
||||
|
||||
// Redux: POI-Typen
|
||||
import { fetchPoiTypThunk } from "../redux/thunks/database/pois/fetchPoiTypThunk";
|
||||
import { selectPoiTypData, selectPoiTypStatus } from "../redux/slices/database/pois/poiTypSlice";
|
||||
import { fetchPoiTypThunk } from "@/redux/thunks/database/pois/fetchPoiTypThunk";
|
||||
import { selectPoiTypData, selectPoiTypStatus } from "@/redux/slices/database/pois/poiTypSlice";
|
||||
|
||||
// Redux: GIS Geräte
|
||||
import { fetchGisStationsStaticDistrictThunk } from "../redux/thunks/webservice/fetchGisStationsStaticDistrictThunk";
|
||||
import { selectGisStationsStaticDistrict } from "../redux/slices/webservice/gisStationsStaticDistrictSlice";
|
||||
import { fetchGisStationsStaticDistrictThunk } from "@/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk";
|
||||
import { selectGisStationsStaticDistrict } from "@/redux/slices/webservice/gisStationsStaticDistrictSlice";
|
||||
|
||||
// Redux: priorityConfig
|
||||
import { fetchPriorityConfigThunk } from "../redux/thunks/database/fetchPriorityConfigThunk";
|
||||
import { selectPriorityConfig } from "../redux/slices/database/priorityConfigSlice";
|
||||
import { fetchPriorityConfigThunk } from "@/redux/thunks/database/fetchPriorityConfigThunk";
|
||||
import { selectPriorityConfig } from "@/redux/slices/database/priorityConfigSlice";
|
||||
|
||||
export const useMapComponentState = () => {
|
||||
const dispatch = useDispatch();
|
||||
|
||||
// Redux: Sichtbarkeit des POI-Layers
|
||||
const poiLayerVisible = useSelector((state) => state.poiLayerVisible.visible);
|
||||
const poiLayerVisible = useSelector(state => state.poiLayerVisible.visible);
|
||||
|
||||
// Redux: POI-Typen
|
||||
const poiTypData = useSelector(selectPoiTypData);
|
||||
|
||||
Reference in New Issue
Block a user