Standardmäßig gibt die Routes API die Standardroute zurück. Das ist in der Regel die schnellste Route vom Startpunkt zum Ziel. Wenn Sie alternative Routen anfordern, gibt die API bis zu drei Routen zusammen mit der Standardroute zurück. Ihre Kunden können dann eine Route auswählen, die ihren Anforderungen am besten entspricht.
Überlegungen beim Anfordern alternativer Routen
Beachten Sie beim Anfordern alternativer Routen Folgendes:
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 sich die Antwortzeit der API verlängern.
Beispiel für eine Anfrage nach alternativen Routen
Legen Sie computeAlternativeRoutes auf true fest, um alternative Routen anzufordern. Im
folgenden Beispiel wird gezeigt, wie Sie in einer
computeRoutes
Methode (REST) Anfrage 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, sodass die Antwort nur die
duration, distanceMeters, und routeLabels Attribute für jede Route enthält. Ihr Kunde kann dann anhand dieser Informationen auswählen, welche Route er nehmen möchte. Weitere
Informationen finden Sie unter Auswählen, welche Informationen zurückgegeben werden sollen.
Beispiel für eine Antwort auf eine Anfrage nach alternativen Routen
Verwenden Sie in der Antwort das Array-Attribut routeLabels, um die einzelnen Routen zu identifizieren:
Für die Standardroute enthält das Attribut
routeLabelsden WertDEFAULT_ROUTE.Für alternative Routen enthält das Attribut
routeLabelsden WertDEFAULT_ROUTE_ALTERNATE.
In diesem Beispiel enthält die Antwort die Standardroute und zwei alternative Routen. Die Werte der Attribute duration und distanceMeters sind für jede Route unterschiedlich:
{ "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 einbeziehen
Damit der Nutzer die Route leichter auswählen kann, fügen Sie der Antwort die Polylinie für jede Route hinzu. Anschließend können Sie jede Polylinie auf einer Karte anzeigen.
Fügen Sie routes.polyline in die Feldmaske ein, um die Polylinie hinzuzufügen:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Die Antwort enthält dann die Polylinie 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" ] } ] }