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 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 Startort beginnt und an jedem Zielort endet.

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 address oder placeIDs und für Elemente. Elemente sind die Routen zwischen den einzelnen Start- und Zielorten in einer Routenmatrix. Die Anzahl der Elemente entspricht also der Anzahl der Startorte mal der Anzahl der Ziele. Wenn Sie beispielsweise 10 Start- und 10 Ziele haben, sind 100 Elemente vorhanden:

  • Die Anzahl der Elemente darf für Routen, die nicht 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- und 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. Beispiel: Die gesamte Antwort enthält einen Fehler, wenn die Anfrage falsch formatiert ist (z. B. keine Ursprünge).

Wenn ein Fehler jedoch auf eine Teilmenge von Elementen in der Antwort zutrifft (z. B. kann eine Route nicht für eine Kombination aus Start- und Zielort berechnet werden), geben nur die vom Fehler betroffenen Elemente einen Fehlercode zurück.

Ergebnisse für gRPC-Stream

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 wurden, bevor Sie mit der Verarbeitung der Ergebnisse beginnen können.

Es ist nicht garantiert, 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 Ausgangspunkt der Route origins[origin_index] für ein bestimmtes Element und das Routenziel destinations[destination_index]. Diese Arrays sind nullindexiert. Es ist wichtig, die Bestellungen der Start- 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 gehen Sie so vor:

  • 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 befindet sich das erste Element an einem Index von 0, das zweite Element an 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 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 aus allen Start- und Ziel-Wegpunkten.

Identifizieren Sie jede Route in der Antwort mithilfe der Antwortfelder originIndex und destinationIndex. Ein originIndex von 1 in der Antwort entspricht beispielsweise einer Route, die vom Wegpunkt bei 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 finden Sie in den Beispielen unter gRPC-Beispielanfrage. Im Java-Beispiel auf dieser Seite werden sowohl Compute Routes als auch Compute Route Matrix aufgerufen.