Verwenden Sie die Routes API, um die Entfernung und Dauer einer Route für mehrere Start- und Zielorte zu berechnen. Rufen Sie dazu die Methode computeRouteMatrix (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 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 und 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 Ziele. Wenn Sie beispielsweise 10 Start- und 10 Zielorte haben, haben Sie 100 Elemente:
Die Anzahl der Elemente darf für Routen, die keine
TRANSIT
-Routen sind, 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 einbezogen werden sollen.Wenn Sie Start- oder Zielorte mithilfe der Adresse oder der 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. Beispielsweise enthält die gesamte Antwort einen Fehler, wenn die Anfrage falsch formatiert ist (z. B. keine Ursprünge).
Wenn ein Fehler jedoch nur für einen Teil der Elemente in der Antwort gilt (z. B. kann keine Route für eine Kombination aus Start- und Zielort berechnet werden), geben nur die vom Fehler betroffenen Elemente einen Fehlercode zurück.
Ergebnisse des gRPC-Streams
Die gRPC-Methode ComputeRouteMatrix nimmt eine Liste von Start- und Zielorten auf 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 sind, bevor Sie mit der Verarbeitung der Ergebnisse beginnen können.
Es kann nicht garantiert werden, dass die vom Stream zurückgegebenen Elemente in beliebiger Reihenfolge zurückgegeben werden. Daher enthält jedes Antwortelement eine origin_index
und eine destination_index
. Für die in der Anfrage angegebenen Start- und Zielorte entspricht der Startort der Route origins[origin_index]
für ein bestimmtes Element und der Zielort der Route entspricht destinations[destination_index]
.
Diese Arrays sind nullindexiert. Es ist wichtig, die Bestellungen der Ursprungs- und Ziellisten zu speichern.
Beispiele für „Route Matrix“ berechnen
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 mit zwei Start- und zwei Wegpunkten an. Mit dieser Methode wird eine Route von jedem Startort zu jedem Zielort berechnet, sodass die Antwort vier Routen enthält.
Im Array befindet sich das erste Element an einem Index von 0, das zweite Element bei Index 1 usw.
Fügen Sie eine Antwortfeldmaske ein, um festzulegen, welche Felder der Antwort (REST) oder der ComputeRoutesResponse (gRPC) zurückgegeben werden sollen. Konfigurieren Sie in diesem Beispiel die Anfrage so, dass für jede Route
originIndex
,destinationIndex
,duration
,distanceMeters
,status
undcondition
zurückgegeben werden. Weitere Informationen finden Sie unter Felder zur 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 aus allen Start- und Ziel-Wegpunkten.
Identifizieren Sie jede Route in der Antwort mithilfe der Antwortfelder originIndex
und destinationIndex
. Ein originIndex
-Wert von 1 in der Antwort entspricht beispielsweise einer Route, die ausgehend vom Wegpunkt bei 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
Beispiele für gRPC finden Sie in den Beispielen unter gRPC-Beispielanfragen. Im Java-Beispiel auf dieser Seite werden sowohl Compute Routes als auch Compute Route Matrix aufgerufen.