diff --git a/components/MapComponent.js b/components/MapComponent.js index dea088037..019293fd6 100644 --- a/components/MapComponent.js +++ b/components/MapComponent.js @@ -2383,6 +2383,81 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { setPolylines(newPolylines); }, [map, linePositions, lineColors, tooltipContents]); + //--------------------------------------------------------- + //--------------------------------------------------------- + useEffect(() => { + if (!map) return; + + // Funktion zum Hinzufügen eines neuen Punktes + const addNewPoint = (latlng, lineData) => { + const newCoordinates = [ + ...lineData.coordinates, + [latlng.lat, latlng.lng], + ]; + // Update der Linie auf der Karte und eventuell Speichern der neuen Koordinaten wie oben beschrieben + // Aufruf der Update-Funktion oder was auch immer benötigt wird + updateLine(lineData, newCoordinates); + }; + + // Kontextmenü-Handler + const onMapContextMenu = (event) => { + // Das Kontextmenü öffnen, Position und eventuelle Optionen hier bestimmen + const latlng = event.latlng; + console.log("Kontextmenü geöffnet bei:", latlng); + + // Beispiel: Dynamisches Erzeugen eines Menüs (simplifiziert) + const contextMenu = L.popup() + .setLatLng(latlng) + .setContent( + '' + ) + .openOn(map); + + // Hier müsste `lineData` die spezifische Linieninformation sein, evtl. müssten Sie diese auswählen oder übergeben + }; + + // Event-Listener hinzufügen + map.on("contextmenu", onMapContextMenu); + + // Cleanup + return () => { + map.off("contextmenu", onMapContextMenu); + }; + }, [map]); + + //-------------------------------------------------------- + //--------------------------------------------------------- + const updateLine = (lineData, newCoordinates) => { + // Hier Ihr bestehender Code zum Aktualisieren der Linie + // z.B. den State aktualisieren oder API-Aufrufe tätigen + fetch("/api/talas_v5_DB/gisLines/updateLineCoordinates", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + idLD: lineData.idLD, + newCoordinates, + }), + }) + .then((response) => response.json()) + .then((data) => { + console.log("Koordinaten erfolgreich aktualisiert:", data); + // Update der Linien-Daten im State, um die Linie auf der Karte zu aktualisieren + setLinePositions((oldLines) => + oldLines.map((line) => { + if (line.idLD === lineData.idLD) { + return { ...line, coordinates: newCoordinates }; + } + return line; + }) + ); + }) + .catch((error) => { + console.error("Fehler beim Aktualisieren der Koordinaten:", error); + }); + }; + //--------------------------------------------------------- //---------------------------------------------------------