API-Dokumentation & Playground
Einführung
Die OSRMRoute Directions API ist ein RESTful-Webdienst, der entwickelt wurde, um schnelles, hochleistungsfähiges Geo-Routing, Reisematrizen, Adresssuche (Geocoding) und Routenoptimierung in Ihre Anwendungen zu integrieren. Diese Dokumentation erläutert alle Funktionen der API, die Parameter und die Integrationsschritte im Detail.
Authentifizierung
OSRMRoute-API-Anfragen verwenden einen eindeutigen API-Schlüssel zur Authentifizierung. Sie können Ihren API-Schlüssel jeder Anfrage als Query-Parameter (?key=YOUR_KEY) oder über den HTTP-Authorization-Header (als Bearer-Token) hinzufügen.
Any endpointParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| key | string | Erforderlich | - | Der eindeutige API-Schlüssel aus Ihrem persönlichen Dashboard. Dieser Schlüssel bestimmt die Limits Ihrer Anfragen. |
Fehlercodes
OSRMRoute verwendet Standard-HTTP-Statuscodes und detaillierte JSON-Fehlermeldungen, um den Zustand einer Anfrage anzuzeigen.
Erläuterung der Antwortstruktur
Wichtigste Statuscodes und ihre Bedeutung: - **200 OK**: Die Anfrage wurde erfolgreich abgeschlossen. - **400 Bad Request**: Parameter sind ungültig oder fehlen. - **401 Unauthorized**: Der API-Schlüssel wurde nicht angegeben oder ist ungültig. - **403 Forbidden**: Der API-Schlüssel ist gesperrt oder inaktiv. - **429 Too Many Requests**: Das tägliche Credit-Limit wurde überschritten. - **500 Internal Error**: Ein interner Systemfehler ist aufgetreten.
Routing API
Berechnet die schnellste und kürzeste Route von Punkt A nach Punkt B (mit Zwischen-Via-Punkten). Gibt Turn-by-Turn-Anweisungen und GeoJSON-Geometrie für verschiedene Transportprofile (driving, cycling, walking) zurück.
/api/v1/osrm/route/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportmodus-Profil. Unterstützte Werte: driving (Auto), cycling (Fahrrad), walking (Fußgänger). |
| coordinates | string | Erforderlich | - | Koordinaten der Punkte. Format: lon,lat;lon,lat;lon,lat... (mindestens 2 Punkte). |
| overview | string | Optional | full | Detailgrad der zurückgegebenen Routengeometrie: simplified (vereinfacht), full (vollständige Geometrie), false (ohne Geometrie). |
| geometries | string | Optional | geojson | Geometrieformat: geojson (GeoJSON-Objekt), polyline (kodierte Zeichenfolge). |
| steps | boolean | Optional | true | Ob für jede Abbiegung Schritt-für-Schritt-Anweisungen zurückgegeben werden. |
Erläuterung der Antwortstruktur
Eine erfolgreiche Antwort enthält die Gesamtdistanz der Route (in Metern), die Fahrzeit (in Sekunden), Wegpunkte und die GeoJSON-Routenlinie.
Matrix API
Berechnet eine schnelle Distanz- und Fahrzeitmatrix zwischen mehreren Punkten (eine NxM-Tabelle). Ein ideales Werkzeug zur Optimierung von Logistikrouten.
/api/v1/osrm/table/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil (driving, cycling, walking). |
| coordinates | string | Erforderlich | - | Matrixpunkte. Format: lon,lat;lon,lat;lon,lat... |
| annotations | string | Optional | duration,distance | Zu berechnende Daten: duration (Zeit), distance (Distanz) oder beides. |
Erläuterung der Antwortstruktur
Eine erfolgreiche Antwort gibt eine zweidimensionale distances- (Distanzen) und durations-Matrixtabelle (Dauern) für jede Kombination aus Start- und Endpunkt zurück.
Map Matching API
Ordnet ungenaue GPS-Spuren dem realen Straßennetz zu (snap to road). Wird verwendet, um Rauschen in GPS-Signalen zu bereinigen.
/api/v1/osrm/match/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil. |
| coordinates | string | Erforderlich | - | Die Folge von GPS-Koordinaten zum Zuordnen (lon,lat;lon,lat...) |
| overview | string | Optional | full | Geometriegenauigkeit der zugeordneten Route. |
Nearest API
Ordnet jede Koordinate dem nächstgelegenen realen Straßensegment zu (snap) und gibt Informationen zum Straßennamen zurück.
/api/v1/osrm/nearest/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil. |
| coordinates | string | Erforderlich | - | Der Punkt, in dessen Nähe gesucht wird. Format: lon,lat (ein einzelnes Paar). |
| number | integer | Optional | 3 | Die Anzahl der zu findenden nächstgelegenen Straßenkandidaten. |
Trip API
Löst das Problem des Handlungsreisenden (TSP): findet die optimalste Rund- (oder offene) Route, um eine gegebene Punktmenge zu besuchen, und ordnet die Punkte.
/api/v1/osrm/trip/v1/{profile}/{coordinates}Parameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| profile | string | Erforderlich | driving | Transportprofil. |
| coordinates | string | Erforderlich | - | Zu besuchende Punkte. Format: lon,lat;lon,lat... |
| source | string | Optional | any | Der Punkt, an dem die Route beginnen kann (any oder der erste Punkt). |
| destination | string | Optional | any | Der Punkt, an dem die Route endet (any oder der letzte Punkt). |
Geocoding API
Wandelt Adressen in geografische Koordinaten um (oder umgekehrt). Ideal für integrierte Suchsysteme.
/api/1/geocodeParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| q | string | Erforderlich | - | Die zu suchende Adresse (z. B. „Nizami-Straße, Baku“). |
| reverse | boolean | Optional | false | Muss true sein, um Reverse-Geocoding durchzuführen (Suche von Koordinate zu Adresse). |
Isochrone API
Gibt Polygone der geografischen Zonen zurück, die von einem gegebenen Punkt aus innerhalb einer gegebenen Zeit oder Distanz erreichbar sind.
/api/1/isochroneParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| point | string | Erforderlich | - | Mittelpunkt. Format: lat,lon. |
| time_limit | integer | Optional | 600 | Fahrzeitlimit (in Sekunden). |
Route Optimization API
Optimiert die Routen einer Fahrzeugflotte (Vehicle Routing Problem). Berechnet den Liefer- und Transportplan der Fahrzeuge zu den geringsten Kosten.
/api/1/vrpParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| vehicles | array | Erforderlich | [] | Die Liste der Fahrzeuge (id, Kapazität, Startadresse usw.). |
| services | array | Erforderlich | [] | Die zu bedienenden Adressen (id, Koordinaten, Servicezeit usw.). |
Location Clustering API
Gruppiert (clustert) gegebene Koordinaten nach ihrer geografischen Nähe und Dichte.
/api/1/clusterParameter (Query Params)
| Parameter | Typ | Status | Standard | Beschreibung |
|---|---|---|---|---|
| customers | array | Erforderlich | [] | Kundenkoordinaten und Gewichte, die geclustert werden sollen. |