Standardmäßig gibt die Routes API die Standardroute zurück, die in der Regel die schnellste Route vom Start- zum Zielort ist. Wenn Sie alternative Routen anfordern, gibt die API neben der Standardroute bis zu drei Routen zurück. Ihre Kunden können dann einen Weg auswählen, der ihren Anforderungen am besten entspricht.
Hinweise zum Anfordern von alternativen Routen
Beachten Sie beim Anfordern alternativer Routen Folgendes:
Sie können nur alternative Routen für Routen ohne Zwischenwegpunkte anfordern. Das Anfordern alternativer Routen, wenn für die Route Zwischenziele angegeben sind, führt nicht zu einem Fehler. Es werden jedoch keine alternativen Routen zurückgegeben.
Die Antwort enthält maximal drei alternative Routen. Manchmal sind jedoch keine alternativen Routen verfügbar, sodass die Antwort nur die Standardroute enthält.
Aufgrund der zusätzlichen Verarbeitung, die zum Berechnen alternativer Routen erforderlich ist, kann die Antwortzeit der API durch das Anfordern alternativer Routen erhöht werden.
Beispiel für eine Anfrage für alternative Routen
Legen Sie computeAlternativeRoutes
auf true
fest, um alternative Routen anzufordern. Im folgenden Beispiel wird gezeigt, wie Sie in einer REST-Anfrage an die Methode computeRoutes alternative Routen anfordern.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
In diesem Beispiel geben Sie eine Feldmaske an, damit die Antwort für jede Route nur die Properties duration
, distanceMeters,
und routeLabels
enthält. Anhand dieser Informationen kann Ihr Kunde dann entscheiden, welche Route er nehmen möchte. Weitere Informationen finden Sie unter Zurückzugebende Informationen auswählen.
Beispiel für eine Antwort zu alternativen Routen
Verwenden Sie in der Antwort die Array-Property routeLabels
, um den Pfad zur Reichweite zu identifizieren:
Für die Standardroute enthält die Eigenschaft
routeLabels
DEFAULT_ROUTE
.Für alle alternativen Routen enthält die
routeLabels
-PropertyDEFAULT_ROUTE_ALTERNATE
.
In diesem Beispiel enthält die Antwort die Standardroute und zwei alternative Routen. Beachten Sie, dass die Werte der Attribute duration
und distanceMeters
für jede Route unterschiedlich sind:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Polylinien in die Antwort einfügen
Fügen Sie der Antwort die Polylinie für jede Route hinzu, damit Nutzer die Route leichter auswählen können. Anschließend können Sie jede Polylinie auf einer Karte anzeigen.
Fügen Sie zum Hinzufügen der Polylinie routes.polyline
in die Feldmaske ein:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Die Antwort enthält dann den Polylinienzug für jede Route:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }