Routenmatrix abrufen

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 also 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 zu TRAFFIC_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 Start- zu jedem Zielort, 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 und condition 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. Das Java-Beispiel auf dieser Seite ruft sowohl Compute Routes als auch Compute Route Matrix auf.