# 🧭 setupPolylines.js – Polylinien zeichnen und verwalten ## Zweck Diese Datei enthält die zentrale Funktion `setupPolylines`, die in der Kartenkomponente (Leaflet) Polylinien sowie Marker basierend auf Gerätekonfigurationen zeichnet und verwaltet. Sie wird verwendet, um: - Polylinien basierend auf Koordinaten zu zeichnen - Stützpunkte visuell als Marker anzuzeigen - Marker kontextsensitiv mit Optionen (z. B. „Stützpunkt entfernen“, „Koordinaten anzeigen“) auszustatten - Linien aktualisieren und neue Koordinaten in die Datenbank schreiben - Kontextmenü-Interaktionen zu ermöglichen --- ## Besonderheiten - Marker mit speziellen Icons (Start, Ende, Zwischenpunkt) - Interaktivität abhängig vom Bearbeitungsmodus (editMode aus `localStorage`) - Kontextmenü pro Marker und Linie individuell steuerbar - API-Aufrufe zur Koordinaten-Aktualisierung: `POST /api/talas_v5_DB/gisLines/updateLineCoordinates` --- ## Dynamische URL mit Port-Steuerung Die Datei verwendet **keine feste API-Basis-URL** mehr aus `.env.local`. Stattdessen wird `NEXT_PUBLIC_API_PORT_MODE` genutzt, um zwischen Entwicklungs- und Produktionsumgebung zu unterscheiden: ```env NEXT_PUBLIC_API_PORT_MODE=dev ``` ### Beispiel im Code: ```js const mode = process.env.NEXT_PUBLIC_API_PORT_MODE; const baseUrl = mode === "dev" ? `${window.location.protocol}//${window.location.hostname}:80/talas5/` : `${window.location.origin}/talas5/`; ``` --- ## Kontextmenüaktionen - Station öffnen (neuer Tab) - Koordinaten anzeigen - Zoom in/out - Karte zentrieren - Stützpunkt hinzufügen/entfernen (wenn editMode) --- ## Speicherorte - Polylinien und LineColors werden unter `window.polylines` und `window.lineColors` global gespeichert - Aktive Redux-Slices: - `polylineContextMenuSlice` - `addPoiOnPolylineSlice` - `polylineLayerVisibleSlice` --- ## Siehe auch - API-Aufruf: `/api/talas_v5_DB/gisLines/updateLineCoordinates` - `utils/geometryUtils.js`, `poiUtils.js`, `eventHandlers.js` - `redux/slices/polylineContextMenuSlice.js` --- 📄 Pfad: `/docs/frontend/utils/polylines/setupPolylines.md` --- [Zurück zur Übersicht](../../README.md)