Standardmäßig gibt die Routes API die Standardroute zurück. Dies ist in der Regel die schnellste Route vom Start- zum Zielort. Wenn Sie alternative Routen anfordern, gibt die API bis zu drei Routen zusammen mit der Standardroute zurück. Ihre Kunden können dann die Route auswählen, die ihren Anforderungen am besten entspricht.
Überlegungen beim Anfordern alternativer Routen
Beachten Sie die folgenden Hinweise, wenn Sie alternative Routen anfordern möchten:
Alternative Routen können nur für Routen ohne Wegpunkte angefordert werden. Das Anfordern alternativer Routen, wenn für die Route Wegpunkte 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 für die Berechnung alternativer Routen erforderlich ist, kann das Anfordern alternativer Routen die Antwortzeit der API erhöhen.
Beispielanfrage für alternative Routen
Legen Sie für computeAlternativeRoutes
den Wert true
fest, um alternative Routen anzufordern. Das folgende Beispiel zeigt, wie alternative Routen in einer REST-Anfrage (computeRoutes) angefordert werden.
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 für jede Route nur die Attribute duration
, distanceMeters,
und routeLabels
enthält. Anhand dieser Informationen kann Ihr Kunde dann die gewünschte Route wählen. Weitere Informationen finden Sie unter Auswählen, welche Informationen zurückgegeben werden sollen.
Beispielantwort für alternative Routen
Verwenden Sie in der Antwort das Arrayattribut routeLabels
, um die Reichweitenroute anzugeben:
Für die Standardroute enthält das Attribut
routeLabels
DEFAULT_ROUTE
.Für alternative Routen enthält das Attribut
routeLabels
den 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 einschließen
Fügen Sie der Antwort die Polylinie für jede Route hinzu, um dem Nutzer die Auswahl der Route zu erleichtern. Anschließend können Sie die einzelnen Polylinien auf einer Karte darstellen.
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 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" ] } ] }