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