import { useEffect } from "react"; import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; const useMarkersLayer = (map, markers, GisStationsMeasurements, GMA, oms) => { useEffect(() => { if (!map) return; // Entferne alte Marker GMA.clearLayers(); // Hinzufügen neuer Marker markers.forEach((marker) => { // Finde die Messungen, die zu diesem Marker gehören const relevantMeasurements = GisStationsMeasurements.filter((m) => m.Area_Name === marker.options.areaName); let measurements = {}; let area_name = marker.options.areaName; relevantMeasurements.forEach((m) => { measurements[m.Na] = m.Val; }); // Überprüfe, ob die Messwerte vorhanden sind, und setze Standardwerte const lt = measurements["LT"] || "---"; const fbt = measurements["FBT"] || "---"; const gt = measurements["GT"] || "---"; const rlf = measurements["RLF"] || "---"; console.log(`Station oder Bereich ${area_name} - LT: ${lt}, FBT: ${fbt}, GT: ${gt}, RLF: ${rlf}`); // Tooltip für den Marker binden marker.bindTooltip( `
${area_name}
LT : ${lt} °C
FBT : ${fbt} °C
GT : ${gt}
RLF : ${rlf} %
`, { permanent: true, direction: "auto", offset: [60, 0], } ); // Ereignisse für das Öffnen und Schließen des Tooltips marker.on("mouseover", function () { this.openPopup(); }); marker.on("mouseout", function () { this.closePopup(); }); // Kontextmenü hinzufügen addContextMenuToMarker(marker); // Füge den Marker zur Layer-Gruppe hinzu GMA.addLayer(marker); oms.addMarker(marker); }); map.addLayer(GMA); }, [map, markers, GisStationsMeasurements, GMA, oms]); }; export default useMarkersLayer;