Routing-API-Referenz
Die SmartMaps Routing API bietet Funktionen zur Berechnung von Routen, Distanzmatrizen, optimierten Touren und Isochronen. Sie ermöglicht es Ihnen, die besten Wege zwischen Orten zu finden, Reisezeiten und Entfernungen zu berechnen, mehrstufige Touren zu optimieren und erreichbare Gebiete anhand von Zeit oder Entfernung zu bestimmen.
Endpunkte
Route
Berechnet eine Route zwischen zwei oder mehr Koordinaten mit optionalen Zwischenpunkten.
URL: https://www.yellowmap.de/api_rst/v2/geojson/route
Methode: POST
Request Body:
{
"type": "FeatureCollection",
"routingparams": {
"type": "ROUTE",
"isoLocale": "de-DE",
"coordFormatOut": "GEODECIMAL_POINT",
"speedProfile": "FAST",
"routingTimeMode": "ARRIVAL"
},
"authentication": {
"channel": ""
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.362124135917012, 49.01062717784205]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.437334508302376, 49.004997061308316]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.381356011960742, 48.99103162515999]
},
"properties": {}
}
]
}
Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
type |
string | Gibt den GeoJSON-Typ an. |
routingparams.type |
string | Muss auf "ROUTE" gesetzt werden. |
routingparams.isoLocale |
string | Legt die Sprache der Routenanweisungen fest. |
routingparams.coordFormatOut |
string | Koordinatenformat der Ausgabekoordinate. Unterstützte Werte: "SUPERKONFORM", "MERCATOR", "GEODECIMAL", "GEODECIMAL_POINT". |
routingparams.speedProfile |
string | Geschwindigkeitsprofil für die Routenberechnung. Unterstützte Werte: "FAST", "SLOW", "BICYCLE", "PEDESTRIAN". |
routingparams.routingTimeMode |
string | Legt fest, wie die Zeit berechnet wird. Unterstützte Werte: "ARRIVAL", "DEPARTURE". |
authentication.channel |
string | Eine beliebige Zeichenkette zur Protokollierung und Identifizierung der Anfrage. |
crs.type |
string | Gibt den Typ des Koordinatenreferenzsystems an. |
crs.properties.name |
string | Gibt den Namen des Koordinatenreferenzsystems an. |
features |
array | Array von GeoJSON-Features, die die Routenpunkte repräsentieren. Der erste Punkt ist der Startpunkt, gefolgt von Zwischenpunkten, der letzte Punkt ist das Ziel. |
Antwort:
Die Antwort ist eine GeoJSON-FeatureCollection, die die berechnete Route und die Wegbeschreibung enthält.
Matrix
Berechnet die Entfernung und Reisezeit zwischen mehreren Koordinaten und einer Koordinate.
URL: https://www.yellowmap.de/api_rst/v2/geojson/route
Methode: POST
Request Body:
{
"type": "FeatureCollection",
"routingparams": {
"type": "MATRIX",
"coordFormatOut": "GEODECIMAL_POINT",
"speedProfile": "FAST",
"routingTimeMode": "ARRIVAL"
},
"authentication": {
"channel": ""
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.331952086718967, 49.01603149080641]
},
"properties": {
"type": "StartPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "MultiPoint",
"coordinates": [
[8.391008912120817, 49.02121007355168],
[8.38688866848814, 48.996438064932285],
[8.364227328508337, 49.00139345263399]
]
},
"properties": {}
}
]
}
Parameter:
Ähnlich wie beim Route-Endpunkt, mit folgenden Unterschieden:
| Parameter | Typ | Beschreibung |
|---|---|---|
routingparams.type |
string | Muss auf "MATRIX" gesetzt werden. |
features[0] |
object | Gibt den Startpunkt an. |
features[1] |
object | Gibt die Endpunkte als MultiPoint-Geometrie an. |
Antwort:
Die Antwort ist eine GeoJSON-FeatureCollection, die die Entfernung und Reisezeit zwischen dem Startpunkt und jedem Endpunkt enthält.
Eine vollständige Anfrage/Antwort finden Sie im Beispiel Distanzmatrix.
Trip
Berechnet die optimale Anfahrtsroute zwischen einem Startziel und mehreren Zielen.
URL: https://www.yellowmap.de/api_rst/v2/geojson/route
Methode: POST
Request Body:
{
"type": "FeatureCollection",
"routingparams": {
"type": "TRIP",
"routingRoundTrip": false,
"isoLocale": "de-DE",
"coordFormatOut": "GEODECIMAL_POINT",
"speedProfile": "FAST",
"routingTimeMode": "ARRIVAL"
},
"authentication": {
"channel": ""
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "MultiPoint",
"coordinates": [
[8.378608601097369, 49.00882560981356],
[8.45553610527237, 49.00139345263399]
]
},
"properties": {}
}
]
}
Parameter:
Ähnlich wie beim Route-Endpunkt, mit folgenden Unterschieden:
| Parameter | Typ | Beschreibung |
|---|---|---|
routingparams.type |
string | Muss auf "TRIP" gesetzt werden. |
routingparams.routingRoundTrip |
boolean | Bei true ist der Startpunkt gleichzeitig das endgültige Ziel. |
features |
array | Übergabe von mehr als einem Punkt als MultiPoint-Geometrie. Der erste Punkt ist der Startpunkt, alle weiteren Punkte sind Zwischenpunkte. |
Antwort:
Die Antwort ist eine GeoJSON-FeatureCollection, die die optimierte Route zwischen dem Startpunkt und den Zwischenpunkten enthält.
Isochrone
Berechnet das Gebiet, das durch eine gegebene Reisezeit oder Reiseentfernung abgedeckt wird.
URL: https://www.yellowmap.de/api_rst/v2/geojson/route
Methode: POST
Request Body:
{
"type": "FeatureCollection",
"routingparams": {
"type": "ISOCHRONE",
"timeInMinutes": 40,
"distanceInMeters": null,
"isochroneGrid": "100",
"speedProfile": "FAST",
"coordFormatOut": "GEODECIMAL_POINT",
"routingTimeMode": "ARRIVAL"
},
"authentication": {
"channel": "TEST123"
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.34566116333008, 48.9786396543091]
},
"properties": {}
}
]
}
Parameter:
Ähnlich wie beim Route-Endpunkt, mit folgenden Unterschieden:
| Parameter | Typ | Beschreibung |
|---|---|---|
routingparams.type |
string | Muss auf "ISOCHRONE" gesetzt werden. |
routingparams.timeInMinutes |
number | Zeit in Minuten für die Isochronen-Berechnung. Kann Werte von >0 bis 60 annehmen. Entweder timeInMinutes oder distanceInMeters kann übergeben werden. |
routingparams.distanceInMeters |
number | Entfernung in Metern für die Isochronen-Berechnung. Entweder timeInMinutes oder distanceInMeters kann übergeben werden. |
routingparams.isochroneGrid |
string | Legt die Feinheit des berechneten Polygons fest. Je höher der Wert, desto feiner das Polygon. Kann Werte von 35 bis 150 annehmen. |
features |
array | Ein einzelner Punkt, der als Startpunkt für die Isochronen-Berechnung dient. |
Antwort:
Die Antwort ist eine GeoJSON-FeatureCollection, die das Isochronen-Polygon und den Ursprungspunkt enthält.
Eine vollständige Anfrage/Antwort finden Sie im Beispiel Isochrone.
Map Matching
Gleicht eine Reihe von GPS-Punkten mit dem Straßennetz ab und gibt die abgeglichene Route als GeoJSON zurück.
URL: https://www.yellowmap.de/api_rst/v2/geojson/route
Methode: POST
Request Body:
{
"type": "FeatureCollection",
"routingparams": {
"type": "MATCH",
"isoLocale": "de-DE",
"coordFormatOut": "GEODECIMAL_POINT",
"speedProfile": "FAST",
"routingTimeMode": "ARRIVAL",
"channel": ""
},
"authentication": {
"channel": ""
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC::CRS84"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "MultiPoint",
"coordinates": [
[8.439352102315755,49.02147677180509],
[8.438526428732251,49.02110387755915]
]
}
}
]
}
Parameter:
Ähnlich wie beim Route-Endpunkt, mit folgenden Unterschieden:
| Parameter | Typ | Beschreibung |
|---|---|---|
routingparams.type |
string | Muss auf "MATCH" gesetzt werden. |
features |
array | Muss ein einzelnes MultiPoint-Feature sein, das alle abzugleichenden GPS-Punkte enthält. |
features[n].geometry.type |
string | Muss "MultiPoint" sein. |
features[n].geometry.coordinates |
array | Koordinaten der abzugleichenden GPS-Punkte. |
Antwort:
Die Antwort ist eine GeoJSON-FeatureCollection, die die abgeglichene Route enthält:
properties.distance(number): Gesamtentfernung der abgeglichenen Route in Metern.properties.duration(number): Dauer in Sekunden.features[n].geometry(LineString): Koordinaten der abgeglichenen Route.-
features[n].properties.matchDestinations(array): Details zu jedem Eingabepunkt: -
isMatched: Ob der Punkt dem Straßennetz zugeordnet werden konnte. distance: Entfernung vom ursprünglichen Punkt zum abgeglichenen Punkt in Metern.inPoint: Ursprünglicher GPS-Punkt.matchedPoint: Auf das Straßennetz eingerasteter Punkt.
Eine vollständige Anfrage/Antwort finden Sie im Beispiel Map Matching.
Authentifizierung
Um die SmartMaps Routing API zu nutzen, benötigen Sie einen API-Key zur Authentifizierung. Der API-Key wird als URL-Parameter mit dem Namen apiKey übergeben.
Fehlerbehandlung
Die API kann folgende HTTP-Statuscodes zurückgeben:
400 Bad Request: Die Anfrage wurde fehlerhaft gestellt, z. B. aufgrund eines Syntaxfehlers im JSON.412 Precondition Failed: Der API-Key wurde nicht angegeben.
Beispiel
Hier ist ein Beispiel für eine Anfrage zur Berechnung einer Route:
curl --location --request POST 'https://www.yellowmap.de/api_rst/v2/geojson/route?apiKey=[INSERT API-KEY]' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "FeatureCollection",
"routingparams": {
"type": "ROUTE",
"isoLocale": "de-DE",
"coordFormatOut": "GEODECIMAL_POINT",
"speedProfile": "FAST",
"routingTimeMode": "ARRIVAL"
},
"authentication": {
"channel": ""
},
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.362124135917012, 49.01062717784205]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.437334508302376, 49.004997061308316]
},
"properties": {}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [8.381356011960742, 48.99103162515999]
},
"properties": {}
}
]
}'