docs: Projektstruktur der Dokumentation an Quellcode angepasst
- Verzeichnisstruktur unter /docs spiegelt nun die tatsächliche Projektstruktur wider - frontend/server-Trennung entfernt zugunsten von /docs/pages, /docs/redux, /docs/utils etc. - Erhöht Wiederauffindbarkeit, Übersichtlichkeit und Entwicklerfreundlichkeit
This commit is contained in:
77
docs/utils/polylines/setupPolylines.md
Normal file
77
docs/utils/polylines/setupPolylines.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# 🧭 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`
|
||||
Reference in New Issue
Block a user