Die Routes API gibt standardmäßig die default-Route zurück. Dies ist normalerweise 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 eine Route auswählen, die ihren Anforderungen am besten entspricht.
Überlegungen beim Anfordern alternativer Routen
Beachten Sie beim Anfordern alternativer Routen die folgenden Überlegungen:
Alternative Routen können nur für Routen ohne Wegpunkte angefordert werden. Wenn alternative Routen angefordert werden, wenn in der Route Wegpunkte angegeben sind, wird kein Fehler verursacht. 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 zur Berechnung alternativer Routen erforderlich ist, kann das Anfordern alternativer Routen die Antwortzeit der API erhöhen.
Beispiel für eine Anfrage für alternative Routen
Setzen Sie computeAlternativeRoutes
auf true
, 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 der Kunde dann die Route auswählen. Weitere Informationen finden Sie unter Auswählen, welche Informationen zurückgegeben werden sollen.
Beispiel für eine Antwort auf alternative Routen
Verwenden Sie in der Antwort das Array-Attribut routeLabels
, um die Reichweitenroute zu identifizieren:
Für die Standardroute enthält das Attribut
routeLabels
DEFAULT_ROUTE
.Für alternative Routen enthält das Attribut
routeLabels
DEFAULT_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
Damit Nutzer die Route leichter auswählen können, fügen Sie der Antwort für jede Route die Polylinie hinzu. Anschließend können Sie jede Polylinie 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" ] } ] }