Routing (POST)
Backend-Service
Die Backend-Services sind eigenständige Services. Hierbei handelt es sich um eine Enterprise-Funktion der SmartMaps. Die Funktionalität ist in SmartMaps FREE nicht verfügbar. Für die Freischaltung eines Dienstes und weiteren Fragen stehen wir Ihnen gerne in unserem Supportbereich zur Verfügung.
Navigation
Routing
Zur Basisfunktionalität der SmartMaps-API gehört auch die Möglichkeit beliebige Routen zu berechnen.
Um eine Route berechnen zu können, wird mindestens der Start- und Endpunkt der Wegstrecke benötigt.
Ressourcen-Pfad
Bereitgestellt wird die Funktionalität über eine klassische REST-Schnittstelle, die über den folgenden Link aufgerufen werden kann:
Authentifizierung
Um die Schnittstelle verwenden zu können, benötigen Sie einen API-Key oder Ihren Partnernamen und den dazugehörigen Zugriffsschlüssel. Letztere erhalten Sie von YellowMap. Zur Authentifizierung werden die jeweiligen Zugangsdaten als URL-Parameter übergeben. Die Werte sind stets URL-enkodiert zu übermitteln.
Authentifizierung mittels API-Key
Parameter | Bedeutung |
---|---|
apiKey |
API-Key – erhalten Sie nach Registrierung. |
POST https://www.yellowmap.de/api_rst/v2/geojson/route?apiKey=XXXX
Authentifizierung mittels Partnername und Sicherheitsschlüssel
Parameter | Bedeutung |
---|---|
systemPartner |
Partnername – gibt YellowMap vor. |
securityId |
Zugriffsschlüssel – gibt YellowMap vor. |
POST https://www.yellowmap.de/api_rst/v2/geojson/route?systemPartner=XXXX&securityID=XXXX
Route
Parameter
body
, des POST-Request als JSON mitgeschickt.{
"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": {}
}
]
}
Name | Beschreibung | Datentyp | Standardwert |
---|---|---|---|
type |
Gibt an, um welchen Type es sich laut geoJSON handelt. | string |
|
routingparams.type |
Wert muss auf ROUTE gesetzt werden. |
string |
|
routingparams.isoLocale |
Erlaubt das Festlegen der Sprache der Weganweisungen. | string |
|
routingparams.coordFormatOut |
Koordinatenformat der Koordinate, für die eine Adresse ermittelt werden soll. Einer der Werte aus der
Liste:
|
string |
|
routingparams.speedProfile |
Eines der gültigen Speed-Profile aus der Liste:
|
string |
|
routingparams.routingTimeMode |
Legt fest, wie die Zeit berechnet wird:
|
string
|
|
authentication.channel |
Beliebige Zeichenfolge, die protokolliert wird und dazu dient, den Aufruf später zu identifizieren. Sie kann frei gewählt werden. | string |
|
crs.type |
Gibt den Typ von dem Koordinatenreferenzsystem an. | string |
|
crs.properties.name |
Gibt den Namen von dem Koordinatenreferenzsystem an. | string |
|
features |
Übergabe von mehr als einen Punkt. Diese sind Startpunkt, Zwischenziele und Zielpunkt. | POINT[]
|
Rückgabe
{
"properties": {
"id": "e1ae0856-b54a-47ba-9112-093db70e8668",
"distance": 15460.0,
"duration": 1166.0,
"exception": {
"errCode": "",
"publicReport": ""
}
},
"features": [
{
"properties": null,
"geometry": {
"coordinates": [
[
8.36214,
49.01067
],
...
[
8.38134,
48.99101
]
],
"bbox": [
8.36214,
48.98901,
8.43766,
49.01067
],
"type": "LineString"
},
"bbox": [
8.36214,
48.98901,
8.43766,
49.01067
],
"type": "Feature"
},
{
"properties": {
"nextDistance": 0.0,
"nextDuration": 0.0,
"direction": null,
"trackSection": "Sophienstraße",
"compass": "102",
"navImage": "Start",
"description": "Fahren Sie Richtung Osten auf Sophienstraße",
"totalDistance": 0.0,
"totalTime": 0.0
},
"geometry": {
"coordinates": [
8.36214,
49.01067
],
"bbox": [
8.36214,
49.01067,
8.36214,
49.01067
],
"type": "Point"
},
"type": "Feature"
},
...
{
"properties": {
"nextDistance": 255.0,
"nextDuration": 38.0,
"direction": null,
"trackSection": "Neue-Anlage-Straße",
"compass": "0",
"navImage": "End",
"description": "Sie haben Ihr zweites Ziel erreicht",
"totalDistance": 15449.0,
"totalTime": 1157.0
},
"geometry": {
"coordinates": [
8.38134,
48.99101
],
"bbox": [
8.38134,
48.99101,
8.38134,
48.99101
],
"type": "Point"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Name | Beschreibung | Datentyp |
---|---|---|
properties.id |
Gibt die ID der Routinganfrage an. | string |
properties.distance |
Gibt die Gesamtstrecke in Meter für die Routinganfrage an. | double |
properties.duration |
Gibt die Anfahrtszeit in Sekunden für die Routinganfrage an. | double |
properties.exception.errCode |
Gibt, wenn ein Fehler auftaucht, einen Error-Code an. | string |
properties.exception.publicReport |
Gibt, wenn ein Fehler auftaucht, eine Fehlerbeschreibung an. | string |
features[].properties |
Für zukünftige Funktionen reserviert. | ?{} |
features[].properties.geometry.coordinates |
Stellt Koordinaten einer Strecke (type=LineString) oder Wegbeschreibungen (type=Point) dar. | double[] |
features[].properties.geometry.bbox |
Gibt ein Rechteck an, in dem sich das Feature befindet. | double[] |
features[].properties.geometry.type |
Definiert, um was für ein geometrisches Objekt es sich handelt.
|
string |
features[].properties.bbox |
Gibt ein Rechteck an, in dem sich alle zurückgegebenen Features befinden. | double[] |
features[].properties.type |
Gibt an, um welchen Typ es sich laut geoJSON handelt. | string |
features[].properties.nextDistance |
Gibt an, in wie vielen Metern die Routinganweisung von der vorherigen entfernt ist. | double |
features[].properties.nextDuration |
Gibt an, wie viele Sekunden man zum Erreichen braucht, von der vorherigen Routinganweisung bei normaler Verkehrslage. | double |
features[].properties.direction |
Gibt die Richtung an. | Number |
features[].properties.trackSection |
Gibt die Straße an, auf der man sich nach Ausführen der Wegbeschreibung befindet. | ?string |
features[].properties.compass |
Gibt die Richtung an, in die man fährt von 0-360 Grad | ?number |
features[].properties.navImage |
Schlägt ein Bild zur Navigation vor. Mögliche Bilder sind:
ArrowForward ,
ArrowLeft ,
ArrowRight ,
blank ,
CircleIn ,
CircleOut ,
uturn
|
string |
features[].properties.description |
Gibt die Wegbeschreibung an. | string |
features[].properties.totalDistance |
Gibt den bis jetzt zurückgelegten Weg in Metern an. | double |
features[].properties.totalTime |
Gibt die bis jetzt gefahrene Gesamtzeit in Sekunden an. | double |
type |
Gibt an, um welchen Type es sich laut geoJSON handelt. | string |
Matrix
Dieser Typ ermöglicht eine Berechnung der Entfernung und Reisedauer zwischen mehreren Koordinaten und einer Koordinate.
Parameter
body
, des POST-Request als JSON mitgeschickt.{
"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
]
]
}
}
]
}
Name | Beschreibung | Datentyp | Standardwert |
---|---|---|---|
type |
Gibt an, um welchen Type es sich laut geoJSON handelt. | string |
|
routingparams.type |
Wert muss auf MATRIX gesetzt werden. |
string |
|
routingparams.coordFormatOut |
Koordinatenformat der Koordinate, für die eine Adresse ermittelt werden soll. Einer der Werte aus der
Liste:
|
string |
|
routingparams.speedProfile |
Eines der gültigen Speed-Profile aus der Liste:
|
string |
|
routingparams.routingTimeMode |
Legt fest, wie die Zeit berechnet wird:
|
string
|
|
authentication.channel |
Beliebige Zeichenfolge, die protokolliert wird und dazu dient, den Aufruf später zu identifizieren. Sie kann frei gewählt werden. | string |
|
crs.type |
Gibt den Typ von dem Koordinatenreferenzsystem an. | string |
|
crs.properties.name |
Gibt den Namen von dem Koordinatenreferenzsystem an. | string |
|
features[0] |
Übergabe von einem Punkt. Dies ist der Startpunkt. | POINT
|
|
features[1] |
Übergabe von mehreren Punkten. Diese sind jeweils Endpunkte. | MULTIPOINT
|
Rückgabe
{
"properties": {
"id": null,
"distance": 0.0,
"duration": 0.0,
"exception": {
"errCode": "",
"publicReport": ""
}
},
"features": [
{
"properties": {
"routingDestinations": [
{
"distanceInMeters": 5560.0,
"timeInSeconds": 551.0
},
{
"distanceInMeters": 6440.0,
"timeInSeconds": 535.0
},
{
"distanceInMeters": 4074.0,
"timeInSeconds": 372.0
}
]
},
"geometry": {
"coordinates": [
8.33195,
49.01603
],
"bbox": [
8.33195,
49.01603,
8.33195,
49.01603
],
"type": "Point"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Name | Beschreibung | Datentyp |
---|---|---|
properties.id |
Gibt die ID der Routinganfrage an. | ?string |
properties.distance |
Nicht benutzt. | double |
properties.duration |
Nicht benutzt. | double |
properties.exception.errCode |
Gibt, wenn ein Fehler auftaucht, einen Error-Code an. | string |
properties.exception.publicReport |
Gibt, wenn ein Fehler auftaucht, eine Fehlerbeschreibung an. | string |
features[].properties |
Für zukünftige Funktionen reserviert. | ?{} |
features[].properties. routingDestinations.distanceInMeters |
Gibt die Gesamtstrecke in Meter für den Start- zu einem der Endpunkte an. Reihenfolge der Endpunkte entspricht dem, was features[1] im Request übergeben wurde. | double |
features[].properties. routingDestinations.timeInSeconds |
Gibt die Anfahrtszeit in Sekunden für den Start- zu einem der Endpunkte an. Reihenfolge der Endpunkte entspricht dem, was features[1] im Request übergeben wurde. | double |
features[].geometry |
Gibt den Startpunkt an. | POINT |
type |
Gibt an, um welchen Typ es sich laut geoJSON handelt. | string |
Trip
Parameter
body
, des POST-Request als JSON mitgeschickt.{
"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
]
]
}
}
]
}
Name | Beschreibung | Datentyp | Standardwert |
---|---|---|---|
type |
Gibt an, um welchen Type es sich laut geoJSON handelt. | string |
|
routingparams.type |
Wert muss auf TRIP gesetzt werden. |
string |
|
routingparams.routingRoundTrip |
Wenn true, dann ist der Startpunkt auch das Endziel. | boolean |
|
routingparams.isoLocale |
Erlaubt das Festlegen der Sprache der Weganweisungen. | string |
|
routingparams.coordFormatOut |
Koordinatenformat der Koordinate, für die eine Adresse ermittelt werden soll. Einer der Werte aus der Liste:
|
string |
|
routingparams.speedProfile |
Eines der gültigen Speed-Profile aus der Liste:
|
string |
|
routingparams.routingTimeMode |
Legt fest, wie die Zeit berechnet wird:
|
string |
|
authentication.channel |
Beliebige Zeichenfolge, die protokolliert wird und dazu dient, den Aufruf später zu identifizieren. Sie kann frei gewählt werden. |
string |
|
crs.type |
Gibt den Typ von dem Koordinatenreferenzsystem an. | string |
|
crs.properties.name |
Gibt den Namen von dem Koordinatenreferenzsystem an. | string |
|
features[] |
Übergabe von mehr als einen Punkt als Multipoint, siehe auch GeoJSON. Der erste Punkt ist der Startpunkt. Alle anderen Punkte sind Zwischenziele. | MULTIPOINT |
Rückgabe
{
"properties": {
"id": null,
"distance": 38817.0,
"duration": 2070.0,
"exception": {
"errCode": "",
"publicReport": ""
}
},
"features": [
{
"properties": null,
"geometry": {
"coordinates": [
[
8.10359,
49.00892
],
...
],
"bbox": [
8.08453,
48.98901,
8.45721,
49.05682
],
"type": "LineString"
},
"bbox": [
8.08453,
48.98901,
8.45721,
49.05682
],
"type": "Feature"
},
{
"properties": {
"nextDistance": 0.0,
"nextDuration": 0.0,
"direction": "left",
"trackSection": "",
"compass": "358",
"navImage": "Start",
"description": "Fahren Sie Richtung Norden auf K 23",
"totalDistance": 0.0,
"totalTime": 0.0
},
"geometry": {
"coordinates": [
8.10359,
49.00891
],
"bbox": [
8.10359,
49.00891,
8.10359,
49.00891
],
"type": "Point"
},
"type": "Feature"
},
...
],
"type": "FeatureCollection"
}
Name | Beschreibung | Datentyp |
---|---|---|
properties.id |
Gibt die ID der Routinganfrage an. | string |
properties.distance |
Gibt die Gesamtstrecke in Meter für die Routinganfrage an. | double |
properties.duration |
Gibt die Anfahrtszeit in Sekunden für die Routinganfrage an. | double |
properties.exception.errCode |
Gibt, wenn ein Fehler auftaucht, einen Error-Code an. | string |
properties.exception.publicReport |
Gibt, wenn ein Fehler auftaucht, eine Fehlerbeschreibung an. | string |
features[].properties |
Für zukünftige Funktionen reserviert. | ?{} |
features[].properties.geometry.coordinates |
Stellt Koordinaten einer Strecke (type=LineString) oder Wegbeschreibungen (type=Point) dar. | double[] |
features[].properties.geometry.bbox |
Gibt ein Rechteck an, in dem sich das Feature befindet. | double[] |
features[].properties.geometry.type |
Definiert, um was für ein geometrisches Objekt es sich handelt.
|
string |
features[].properties.bbox |
Gibt ein Rechteck an, in dem sich alle zurückgegebenen Features befinden. | double[] |
features[].properties.type |
Gibt an, um welchen Typ es sich laut geoJSON handelt. | string |
features[].properties.nextDistance |
Gibt an, in wie vielen Metern die Routinganweisung von der vorherigen entfernt ist. | double |
features[].properties.nextDuration |
Gibt an, wie viele Sekunden man zum Erreichen braucht, von der vorherigen Routinganweisung bei normaler Verkehrslage. | double |
features[].properties.direction |
Gibt die Richtung an. | Number |
features[].properties.trackSection |
Gibt die Straße an, auf der man sich nach Ausführen der Wegbeschreibung befindet. | ?string |
features[].properties.compass |
Gibt die Richtung an, in die man fährt von 0-360 Grad | ?number |
features[].properties.navImage |
Schlägt ein Bild zur Navigation vor. Mögliche Bilder sind:
ArrowForward ,
ArrowLeft ,
ArrowRight ,
blank ,
CircleIn ,
CircleOut ,
uturn
|
string |
features[].properties.description |
Gibt die Wegbeschreibung an. | string |
features[].properties.totalDistance |
Gibt den bis jetzt zurückgelegten Weg in Metern an. | double |
features[].properties.totalTime |
Gibt die bis jetzt gefahrene Gesamtzeit in Sekunden an. | double |
type |
Gibt an, um welchen Type es sich laut geoJSON handelt. | string |
Isochrone
Erlaubt das Berechnen der Fläche, die durch eine bestimmte Reisezeit oder Reiseentfernung abgedeckt ist.
Parameter
body
, des POST-Request als JSON mitgeschickt.{
"type": "FeatureCollection",
"routingparams": {
"type": "ISOCHRONE",
"timeInMinutes": 40,
"distanceInMeters": null,
"isochroneGrid": "400",
"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": {}
}
]
}
Name | Beschreibung | Datentyp | Standardwert |
---|---|---|---|
type |
Gibt an, um welchen Typ es sich laut geoJSON handelt. | string |
|
routingparams.type |
Wert muss auf ISOCHRONE gesetzt werden. |
string |
|
routingparams.timeInMinutes |
Zeit in Minuten, in dem sich das Objekt fortbewegen kann. Kann Werte von >0 bis 60 annehmen. Es kann entweder timeInMinutes oder distanceInMeters übergeben werden. |
?double |
null |
routingparams.distanceInMeters |
Wegstrecke in Metern, in dem sich das Objekt fortbewegen kann. Es kann entweder timeInMinutes oder distanceInMeters übergeben werden. |
?double |
null |
routingparams.isochroneGrid |
Definiert die Feinheit des Polygons, das berechnet wird. Umso höher die Werte, umso feiner ist das Polygon. Kann Werte von 35 bis 150 annehmen. | Number |
|
routingparams.speedProfile |
Eines der gültigen Speed-Profile aus der Liste:
|
string |
|
routingparams.coordFormatOut |
Koordinatenformat der Koordinate, für die eine Adresse ermittelt werden soll. Einer der Werte aus der
Liste:
|
string |
|
routingparams.routingTimeMode |
Legt fest, wie die Zeit berechnet wird:
|
string
|
|
authentication.channel |
Beliebige Zeichenfolge, die protokolliert wird und dazu dient, den Aufruf später zu identifizieren. Sie kann frei gewählt werden. | string |
|
crs.type |
Gibt den Typ von dem Koordinatenreferenzsystem an. | string |
|
crs.properties.name |
Gibt den Namen von dem Koordinatenreferenzsystem an. | string |
|
features |
Übergabe von einem Punkt, der als Startpunkt dient. | POINT
|
Rückgabe
{
"properties": {
"id": null,
"distance": 0.0,
"duration": 0.0,
"exception": {
"errCode": "",
"publicReport": ""
}
},
"features": [
{
"properties": {
"featureType": "ISOCHRONE_OUTLINE_POLYGON"
},
"geometry": {
"coordinates": [
[
[
7.25311,
49.29825
],
...
[
7.25311,
49.29825
]
]
],
"type": "Polygon"
},
"bbox": [
7.24636,
48.1835,
9.70117,
49.89793
],
"type": "Feature"
},
{
"properties": null,
"geometry": {
"coordinates": [
8.39406,
48.99306
],
"bbox": [
8.39406,
48.99306,
8.39406,
48.99306
],
"type": "Point"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Name | Beschreibung | Datentyp |
---|---|---|
properties.id |
Gibt die ID der Routing Anfrage an. | ?string |
properties.distance |
Gibt an, welche Wegstrecke zur Berechnung berücksichtigt wurde. | double |
properties.duration |
Gibt an, welche Reisezeit zur Berechnung berücksichtigt wurde. | double |
properties.exception.errCode |
Gibt, wenn ein Fehler auftaucht, einen Error-Code an. | string |
properties.exception.publicReport |
Gibt, wenn ein Fehler auftaucht, eine Fehlerbeschreibung an. | string |
features[].properties.featureType |
Gibt die Art des zurückgegebenen Objektes an. | ?{} |
features[0] |
Gibt ein Polygon zurück, das den abgedeckten Bereich darstellt. | POLYGON |
features[1] |
Gibt den Ursprungspunkt zurück. | POINT |
type |
Gibt an, um welchen Typ es sich laut geoJSON handelt. | string |
Beispiel
{{system_Partner}}
und {{security_id}}
gesetzt werden muss.curl --location --request POST 'https://www.yellowmap.de/api_rst/v2/geojson/route?systemPartner={{system_Partner}}&securityID={{security_id}}' \
--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": {}
}
]
}'
Fehler
HTTP-Statuscode | Beschreibung |
---|---|
400 |
BAD REQUEST, die Anfrage wurde falsch gestellt.
|
412 |
PRECONDITION FAILED, der Token wurde nicht übergeben.
|