Routenmatrix abrufen

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 zu TRAFFIC_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 und condition 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.