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

2.1 KiB
Raw Blame History

🧭 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:

NEXT_PUBLIC_API_PORT_MODE=dev

Beispiel im Code:

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