Verwenden Sie die Routes API, um die Entfernung und Dauer einer Route für mehrere Start- und Zielorte zu berechnen. Dazu rufen Sie die computeRouteMatrix-Methode (REST) oder die Streamingmethode ComputeRouteMatrix (gRPC) auf.
Anhand einer Liste von Start- und Zielorten berechnet die Methode die Entfernung und Dauer einer Route, die an jedem Start- und Zielort beginnt.
Routenmatrix für öffentliche Verkehrsmittel abrufen
Sie können auch eine Routenmatrix für öffentliche Verkehrsmittel berechnen. Ein Beispiel finden Sie unter Routenmatrix für öffentliche Verkehrsmittel abrufen.
Anfragelimits
Die Compute Route Matrix-Methoden erzwingen die folgenden Anfragelimits für Wegpunkte mit Adress- oder Orts-IDs sowie für Elemente. Elemente sind die Routen zwischen jedem Start- und Zielort in einer Routenmatrix. Die Anzahl der Elemente entspricht also der Anzahl der Startorte × der Anzahl der Zielorte. Wenn Sie beispielsweise 10 Start- und 10 Ziele haben, haben Sie 100 Elemente:
Für Routen, die keine
TRANSIT
-Routen sind, darf die Anzahl der Elemente 625 nicht überschreiten.Wenn Sie eine
TRANSIT
-Route angeben, darf die Anzahl der Elemente 100 nicht überschreiten.Wenn Sie
TRAFFIC_AWARE_OPTIMAL
angeben, darf die Anzahl der Elemente 100 nicht überschreiten. Weitere Informationen zuTRAFFIC_AWARE_OPTIMAL
finden Sie unter Festlegen, wie und ob Verkehrsdaten eingeschlossen werden.Wenn Sie Start- oder Zielorte mithilfe einer Adresse oder einer Orts-ID angeben, können Sie auf diese Weise insgesamt bis zu 50 angeben.
Antwortfehler
Eine Funktion der Compute Route Matrix-Methoden besteht darin, dass Fehler entweder für die gesamte Antwort oder für einzelne Antwortelemente zurückgegeben werden können. Die gesamte Antwort enthält beispielsweise einen Fehler, wenn die Anfrage fehlerhaft ist (z. B. keine Ursprünge haben).
Wenn jedoch ein Fehler für eine Teilmenge von Elementen in der Antwort gilt (z. B. kann keine Route für eine Kombination aus Start- und Zielort berechnet werden), geben nur die von dem Fehler betroffenen Elemente einen Fehlercode zurück.
gRPC-Stream-Ergebnisse
Die gRPC-Methode ComputeRouteMatrix übernimmt eine Liste von Start- und Zielorten und gibt einen Stream mit Routeninformationen für jede Kombination aus Start- und Zielort zurück. Da die Ergebnisse als Stream zurückgegeben werden, müssen Sie nicht warten, bis alle möglichen Routenkombinationen berechnet wurden, bevor Sie mit der Verarbeitung der Ergebnisse beginnen können.
Es gibt keine Garantie dafür, dass die vom Stream zurückgegebenen Elemente in beliebiger Reihenfolge zurückgegeben werden. Daher enthält jedes Antwortelement ein origin_index
und ein destination_index
. Bei den in der Anfrage angegebenen Start- und Zielorten entspricht der Ursprungsort der Route für ein bestimmtes Element origins[origin_index]
und der Zielort der Route destinations[destination_index]
.
Diese Arrays sind null-indexiert. Es ist wichtig, die Reihenfolge der Start- und Zielorte in den Listen zu speichern.
Beispiele für die Berechnung einer Route Matrix
Verwenden Sie die Methode computeRouteMatrix in einer HTTP-Anfrage, um eine Routenmatrix zu berechnen.
HTTP-Beispiel
Das folgende Beispiel zeigt eine computeRouteMatrix
-HTTP-Anfrage. In diesem Beispiel führen Sie folgende Schritte aus:
Geben Sie ein Array von zwei Ausgangs- und zwei Wegpunkten an. Die Methode berechnet eine Route von jedem Startpunkt zu jedem Zielort, sodass die Antwort vier Routen enthält.
Im Array befindet sich das erste Element an einem Index von 0, das zweite Element an Index 1 usw.
Fügen Sie eine Antwortfeldmaske hinzu, um anzugeben, welche Felder der Antwort (REST) oder ComputeRoutesResponse (gRPC) zurückgegeben werden sollen. In diesem Beispiel konfigurieren Sie die Anfrage so, dass für jede Route
originIndex
,destinationIndex
,duration
,distanceMeters
,status
undcondition
zurückgegeben werden. Weitere Informationen finden Sie unter Felder für die Rückgabe auswählen.
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
Die Antwort enthält die vier möglichen Routen für die Kombination aller Wegpunkte vom Ausgangs- und Zielort.
Identifizieren Sie jede Route in der Antwort mithilfe der Antwortfelder originIndex
und destinationIndex
. Beispielsweise entspricht ein originIndex
von 1 in der Antwort einer Route, die vom Wegpunkt an Index 1 des origins
-Arrays in der Anfrage berechnet wurde.
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
gRPC-Beispiele
gRPC finden Sie in den Beispielen unter gRPC-Beispielanfrage. Im Java-Beispiel auf dieser Seite werden sowohl Compute Routes als auch Compute Route Matrix aufgerufen.