Files
nodeMap/utils/common/cleanupMarkers.js
ISA f7f7122620 feat: Marker-Cleanup zur Vermeidung von Memory Leaks implementiert
- cleanupMarkers() Utility in /utils/common/cleanupMarkers.js erstellt
- Marker-Cleanup in MapComponent.js vor createAndSetDevices() integriert
- createAndSetDevices.js von Cleanup-Verantwortung befreit (reine Erzeugung)
- setupPOIs.js erweitert um cleanupMarkers() vor Layer-Neuerstellung
- poiUtils.js und markerUtils.js angepasst: cleanupMarkers() ersetzt .remove()
- Memory Leaks durch verwaiste Tooltips, Events und Marker behoben
- Grundlage für wiederverwendbare Marker-Cleanup-Logik für POIs, Geräte, Linien geschaffen
2025-06-06 10:21:56 +02:00

26 lines
725 B
JavaScript

// /utils/common/cleanupMarkers.js
/**
* Entfernt alle Leaflet-Marker vollständig aus der Karte und aus OMS egal welche Typ sind
* @param {L.Marker[]} markers - Liste der Marker
* @param {object} oms - OverlappingMarkerSpiderfier-Instanz (optional)
*/
export const cleanupMarkers = (markers = [], oms = null) => {
markers.forEach(marker => {
// Tooltip und Popup entfernen
marker.unbindTooltip?.();
marker.unbindPopup?.();
// Event-Listener entfernen (zur Sicherheit)
marker.off?.();
// Marker von Karte entfernen
marker.remove?.();
// Marker aus OMS entfernen (wenn vorhanden)
if (oms && typeof oms.removeMarker === "function") {
oms.removeMarker(marker);
}
});
};