feat(map): OMS (OverlappingMarkerSpiderfier) vollständig integriert

- Marker werden nun korrekt bei OMS registriert
- Klick auf Plus-Icon spiderfied überlappende Marker
- useDynamicDeviceLayers um oms erweitert
- checkOverlappingMarkers optimiert für dynamische Marker-Gruppen
- Fehlerbehandlung für ungültige Marker-Typen ergänzt
This commit is contained in:
ISA
2025-05-28 14:23:11 +02:00
parent 85924e575f
commit fe3ecaa900
5 changed files with 26 additions and 20 deletions

View File

@@ -12,7 +12,7 @@ import plusRoundIcon from "../../components/icons/devices/overlapping/PlusRoundI
* @param {object} priorityConfig - Konfig für Prioritäten
* @returns {{ markerStates, layerRefs }} Alle Marker und Referenzen
*/
const useDynamicDeviceLayers = (map, GisSystemStatic, mapLayersVisibility, priorityConfig) => {
const useDynamicDeviceLayers = (map, GisSystemStatic, mapLayersVisibility, priorityConfig, oms) => {
const [markerStates, setMarkerStates] = useState({});
const layerRefs = useRef({});
@@ -29,8 +29,11 @@ const useDynamicDeviceLayers = (map, GisSystemStatic, mapLayersVisibility, prior
IdSystem,
(newMarkers) => {
setMarkerStates((prev) => ({ ...prev, [Name]: newMarkers }));
newMarkers.forEach((m) => layerRefs.current[Name].addLayer(m));
checkOverlappingMarkers(map, newMarkers, plusRoundIcon);
newMarkers.forEach((m) => {
layerRefs.current[Name].addLayer(m);
if (oms) oms.addMarker(m); // ✅ Marker bei OMS registrieren
});
checkOverlappingMarkers(map, newMarkers, plusRoundIcon, oms);
},
GisSystemStatic,
priorityConfig