Mit der Routes API können Sie die Entfernung und Dauer einer Route für mehrere Start- und Zielorte 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 und endet.
Matrix 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
Bei den Compute Route Matrix-Methoden gelten die folgenden Anfragelimits für Wegpunkte mit Adressen oder Orts-IDs und für Elemente. Elemente sind die Routen zwischen den einzelnen Start- und Zielorten in einer Routenmatrix. Die Anzahl der Elemente ergibt sich daher aus der Anzahl der Startorte multipliziert mit der Anzahl der Ziele. Wenn Sie beispielsweise 10 Quellen und 10 Ziele haben, haben Sie 100 Elemente:
Die Anzahl der Elemente darf bei 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 von Adressen- oder Orts-IDs angeben, können Sie insgesamt bis zu 50 angeben.
Antwortfehler
Eine Besonderheit der Methoden zum Berechnen der Routenmatrix ist, 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 hat).
Wenn ein Fehler jedoch nur auf einen Teil der Elemente in der Antwort zutrifft (z. B. wenn eine Route für eine bestimmte Kombination aus Start- und Zielort nicht berechnet werden kann), wird nur für die betroffenen Elemente ein Fehlercode zurückgegeben.
gRPC-Streamergebnisse
Die gRPC-Methode ComputeRouteMatrix nimmt eine Liste von Start- und Zielorten entgegen 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 kann nicht garantiert werden, dass die vom Stream zurückgegebenen Elemente in einer bestimmten 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 Routenstart für ein bestimmtes Element origins[origin_index]
und das Routenziel destinations[destination_index]
.
Diese Arrays sind nullindiziert. Es ist wichtig, die Reihenfolge der Listen mit Ursprungs- und Zielorten zu speichern.
Beispiele für die Berechnung einer Routenmatrix
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:
Geben Sie ein Array mit zwei Start- und zwei Ziel-Wegpunkten an. Die Methode berechnet eine Route von jedem Startpunkt zu jedem Ziel, sodass die Antwort vier Routen enthält.
Im Array hat das erste Element den Index 0, das zweite den Index 1 usw.
Geben Sie eine Antwortfeldmaske an, um anzugeben, welche Felder der Antwort (REST) oder ComputeRoutesResponse (gRPC) zurückgegeben werden sollen. In diesem Beispiel wird die Anfrage so konfiguriert, dass für jede Route
originIndex
,destinationIndex
,duration
,distanceMeters
,status
undcondition
zurückgegeben werden. Weitere Informationen finden Sie unter Zurückzugebende Felder 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 Start- und Ziel-Wegpunkte.
Geben Sie die einzelnen Routen in der Antwort mithilfe der Antwortfelder originIndex
und destinationIndex
an. Ein originIndex
von 1 in der Antwort entspricht beispielsweise einer Route, die vom Wegpunkt mit dem 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-Anfragen finden Sie unter Beispiel für eine gRPC-Anfrage. Im Java-Beispiel auf dieser Seite werden sowohl Compute Routes als auch Compute Route Matrix aufgerufen.