Files
nodeMap/docs/utils/polylines/setupPolylines.md
ISA 8894ce4411 docs: .env.local durch .env.production & .env.development ersetzt + Rücklinks & Footer ergänzt
- 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
2025-06-24 09:00:49 +02:00

89 lines
2.2 KiB
Markdown
Raw Permalink 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 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)