- Zielgruppe
- Ziel
- Grundprinzip
- Zentrale Annahme dieses Tutorials: die Polyline
- Schritt 1: Routengeometrie exportieren
- Schritt 2: Polyline normalisieren
- Schritt 4: Resampling auf äquidistante Punkte (empfohlen: 30 m)
- Schritt 5: CSV für MapTrip erzeugen
- Schritt 6: Übergabe an MapTrip
- Checkliste zur Fehlersuche
- Zusammenfassung
Zielgruppe #
Dieses Tutorial richtet sich an Anwender und Integratoren, die Routen in einem beliebigen Tourenplanungssystem berechnen und sicherstellen möchten, dass die MapTrip Navigation exakt diesen Streckenverlauf abfährt – ohne eigene Neuberechnung. Es geht in diesem Beispiel um die Berechnung einer Route auf einem Server und die Kommunikation mit MapTrip über die Server-API.
Ziel #
Eine extern berechnete Route soll von MapTrip verbindlich und reproduzierbar abgefahren werden, auch wenn:
- das Planungssystem und die Navigation unterschiedliche Karten verwenden
- mehrere alternative Straßen in unmittelbarer Nähe existieren
- komplexe Kreuzungen, Autobahnanschlüsse oder Parallelfahrbahnen vorhanden sind
Grundprinzip #
Tourenplanungssysteme und Navigationssysteme verwenden in der Regel unterschiedliche Karten- und Routingmodelle.
Wenn eine Navigation lediglich Start‑, Ziel‑ oder Zwischenpunkte erhält, wird sie den Streckenverlauf eigenständig neu berechnen.
Um dies zu vermeiden, muss der Navigation der konkrete Streckenverlauf geometrisch vorgegeben werden.
Die MapTrip Server-API stellt hierfür den Endpunkt
POST /remote/route/reference
bereit. Dieser Endpunkt erwartet eine Koordinatenfolge, die den gewünschten Routenverlauf beschreibt.
Zentrale Annahme dieses Tutorials: die Polyline #
Unabhängig vom verwendeten Tourenplanungssystem basiert jede berechnete Route konzeptionell auf einer Polyline.
Was ist hier mit „Polyline“ gemeint? #
Eine Polyline ist eine geordnete Liste von Koordinatenpunkten, die den gerouteten Straßenverlauf beschreibt:
- Punktfolge:
P0, P1, P2, …, Pn - Jeder Punkt ist ein Koordinatenpaar in WGS84
- Die Reihenfolge entspricht der Fahrtrichtung
Diese Polyline kann in sehr unterschiedlichen Formaten vorliegen (z.B. GeoJSON, KML, GPX, JSON‑Objekte, komprimierte Strings).
Für dieses Tutorial ist ausschließlich das konzeptionelle Ergebnis relevant:
eine geordnete Punktliste entlang der Route.
Schritt 1: Routengeometrie exportieren #
Exportieren Sie aus Ihrem Tourenplanungssystem die Liniengeometrie der Route, nicht nur Stopps oder Wegpunkte.
Geeignete Formate sind unter anderem:
- GeoJSON LineString / MultiLineString
- KML LineString
- GPX Track
- JSON‑Strukturen mit Koordinatenpunkten
- komprimierte Polylines (z.B. encoded polylines)
Hinweis
Falls mehrere Formate zur Verfügung stehen, empfehlen sich Formate mit expliziten Koordinaten (GeoJSON, KML, GPX), da diese leicht prüfbar und visualisierbar sind.
Schritt 2: Polyline normalisieren #
Ziel dieses Schritts ist es, die Routengeometrie in eine einfache Punktliste zu überführen:
[(lat0, lon0), (lat1, lon1), …, (latn, lonn)]
Dabei ist zu beachten:
- Manche Formate verwenden
(longitude, latitude) - Manche verwenden
(latitude, longitude) - Manche bezeichnen Koordinaten als
x/y
Vorgehensweise
- Vereinheitlichen Sie alle Punkte auf
(latitude, longitude) - Stellen Sie sicher, dass das Koordinatensystem WGS84 ist
- Entfernen Sie optional direkt aufeinanderfolgende Duplikate
Schritt 4: Resampling auf äquidistante Punkte (empfohlen: 30 m) #
Die Stützpunkte einer Polyline sind nicht gleichmäßig verteilt:
- Lange, gerade Straßen können mit sehr wenigen Punkten beschrieben sein
- Kurvige Abschnitte enthalten mehr Punkte
- Punktabstände können stark variieren
Für ein Navigationssystem mit anderem Kartenmaterial ist diese Geometrie nicht eindeutig genug, um Neuberechnungen sicher zu verhindern.
Ziel des Resamplings #
Erzeugung einer neuen Punktliste, bei der:
- alle Punkte exakt auf dem ursprünglichen Routenverlauf liegen
- der Abstand zwischen aufeinanderfolgenden Punkten nahezu konstant ist
- der Streckenverlauf eindeutig „fixiert“ wird
Empfohlener Punktabstand #
- 30 m (Standard, bewährt)
- 20 m in sehr dichten Innenstadtbereichen
- Abstände >50 m sind nicht empfohlen
Resampling‑Algorithmus (konzeptionell) #
Eingabe:
Eine Punktliste P0 … Pn (Polyline)
Ausgabe:
Eine neue Punktliste Q0 … Qm mit konstantem Abstand
Vorgehen:
- Übernehmen Sie den ersten Punkt
P0alsQ0 - Durchlaufen Sie die Polyline segmentweise (
Pi → Pi+1) - Berechnen Sie die Länge jedes Segments
- Sobald entlang der Route der nächste gewünschte Abstand (z.B. 30 m) erreicht ist:
- interpolieren Sie einen neuen Punkt innerhalb des aktuellen Segments
- fügen Sie diesen Punkt zur Ergebnisliste hinzu
- setzen Sie die Zählung fort, bis das Segment vollständig verarbeitet ist
- Fügen Sie den letzten Punkt der Route hinzu, falls er nicht bereits enthalten ist
Die Interpolation erfolgt linear zwischen zwei Punkten; bei kurzen Abständen (≈30 m) ist dies hinreichend genau.
Schritt 5: CSV für MapTrip erzeugen #
Erzeugen Sie aus der resampelten Punktliste eine CSV‑Datei im folgenden Format:
latitude;longitude
50.732695;7.096295
50.732666;7.096394
50.732649;7.096367
...
Anforderungen
- Semikolon als Trennzeichen
- WGS84
- Punkte in exakter Reihenfolge entlang der Route
- Keine zusätzlichen Spalten erforderlich
Schritt 6: Übergabe an MapTrip #
Übergeben Sie die CSV‑Datei an den Endpunkt
POST /remote/route/reference
MapTrip:
- matched die Punkte auf das eigene Kartenmaterial
- interpretiert sie als verbindliche Referenzroute
- fährt den vorgegebenen Streckenverlauf ohne freie Neuberechnung ab
Checkliste zur Fehlersuche #
Bevor Sie die Route an MapTrip übergeben, prüfen Sie:
- Liegt eine Liniengeometrie vor (nicht nur Stopps)?
- Sind alle Koordinaten korrekt als
(latitude, longitude)angegeben? - Ist die Punktliste in Fahrtrichtung sortiert?
- Wurde ein äquidistantes Resampling durchgeführt?
- Entspricht die CSV exakt dem erwarteten Format?
Zusammenfassung #
- Jede extern berechnete Route lässt sich konzeptionell als Polyline beschreiben
- Diese Polyline ist geometrisch korrekt, aber nicht ausreichend eindeutig für fremdes Kartenmaterial
- Durch äquidistantes Resampling (≈30 m) entsteht eine robuste Referenzroute
- MapTrip kann diese Referenz nutzen, um den Streckenverlauf exakt und reproduzierbar abzufahren