- Alle Hinweise in Markdown-Dateien aktualisiert: Verwendung von `.env.production` und `.env.development` statt `.env.local` - Footer-Abschnitte mit „Zurück zur Übersicht“-Link in allen relevanten `/docs/`-Dateien ergänzt - Inhaltliche Korrekturen und Ergänzungen in Architektur-, Setup-, FAQ-, und Mockdaten-Dokumentation - Inhaltsverzeichnis in `README.md` aktualisiert und funktionierende relative Links in Unterverzeichnissen sichergestellt - Ziel: bessere Lesbarkeit, Navigation und Klarheit für neue Entwickler
89 lines
2.2 KiB
Markdown
89 lines
2.2 KiB
Markdown
<!-- /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 zu aktualisieren und neue Koordinaten in die Datenbank zu 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.development` oder
|
||
`.env.production`.
|
||
Stattdessen wird `NEXT_PUBLIC_API_PORT_MODE` verwendet, 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)
|