Files
nodeMap/docs/utils/polylines/setupPolylines.md
2025-05-28 08:04:34 +02:00

77 lines
2.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- /docs/utils/polylines/setupPolylines.md -->
# 🧭 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`