Mit der Routes API können Sie die Entfernung und Dauer einer Route für mehrere Start- und Zielorte berechnen. Dazu rufen Sie die Methode computeRouteMatrix (REST) oder die Streaming-Methode ComputeRouteMatrix auf (gRPC).
Bei einer Liste von Start- und Zielorten wird die Entfernung und Reisezeit einer Route von jedem Startort aus berechnet, der an jedem Zielort endet.
Anfragelimits
Die Compute Route-Matrix-Methoden erzwingen die folgenden Anfragelimits:
Die Anzahl der Elemente (Anzahl der Ziele × Anzahl der Ziele) darf 625 nicht überschreiten.
Wenn Sie
TRAFFIC_AWARE_OPTIMAL
angeben, darf die Anzahl der Elemente 100 nicht überschreiten. Weitere Informationen zuTRAFFIC_AWARE_OPTIMAL
finden Sie unter Qualität und Latenz konfigurieren.Die maximale Anzahl von Wegpunkten (Startorte und Zielorte), die Sie mit einer Orts-ID angeben können, beträgt 50.
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 fehlerhaft ist (z. B. hat sie keine Ursprünge).
Wenn ein Fehler jedoch auf eine Teilmenge der Elemente in der Antwort angewendet wird (z. B. kann eine Route nicht für eine Kombination aus Start- und Zielort berechnet werden), geben nur die von dem Fehler betroffenen Elemente einen Fehlercode zurück.
Streamergebnisse
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 die Ergebnisse verarbeiten können.
Die vom Stream zurückgegebenen Elemente können nicht in beliebiger Reihenfolge zurückgegeben werden. Daher enthält jedes Antwortelement ein origin_index
und einen destination_index
. Bei den in der Anfrage angegebenen Start- und Zielorten entspricht der Routenort origins[origin_index]
für ein bestimmtes Element und das Routenziel entspricht destinations[destination_index]
.
Diese Arrays sind null indexiert. Es ist wichtig, die Ursprungs- und Ziellistenreihenfolgen zu speichern.
Beispiele für die Routenmatrix 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 tun Sie Folgendes:
Geben Sie ein Array aus zwei Start- und zwei Wegpunkten an. Die Methode berechnet eine Route von jedem Startort zu jedem Ziel, sodass die Antwort vier Routen enthält.
Im Array befindet sich das erste Element an einem Index von 0, das zweite an Index 1 usw.
Geben Sie eine Antwortfeldmaske an, um festzulegen, welche Felder der Antwort (REST) oder ComputeRoutesResponse (gRPC) zurückgegeben werden sollen. In diesem Beispiel konfigurieren Sie die Anfrage so, dass
originIndex
,destinationIndex
,duration
,distanceMeters
,status
undcondition
für jede Route zurückgegeben werden. Weitere Informationen finden Sie unter Felder auswählen, die zurückgegeben werden sollen.
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 mit Start- und Zielort.
Identifizieren Sie jede Route in der Antwort mithilfe der Antwortfelder originIndex
und destinationIndex
. Beispielsweise entspricht eine originIndex
von 1 in der Antwort einer Route, die vom Wegpunkt an Index 1 des Arrays origins
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 findest du in den Beispielen zu Beispiel für gRPC-Anfrage. Im Java-Beispiel auf dieser Seite werden sowohl die Compute Routes als auch die Compute Route Matrix aufgerufen.