Routenmatrix abrufen

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