Routenmatrix abrufen

Entwickler im Europäischen Wirtschaftsraum (EWR)

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

Matrix für Routen mit öffentlichen Verkehrsmitteln 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 sowie für Elemente. Elemente sind die Routen zwischen den einzelnen Start- und Zielorten in einer Routenmatrix. Die Anzahl der Elemente ist also die Anzahl der Startorte multipliziert mit der Anzahl der Ziele. Wenn Sie beispielsweise 10 Startpunkte 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, ob und wie Verkehrsdaten einbezogen werden sollen.

  • Wenn Sie Start- oder Zielpunkte mithilfe von Adressen oder Orts-IDs angeben, können Sie insgesamt bis zu 50 Start- oder Zielpunkte angeben.

Antwortfehler

Ein Merkmal der „Compute Route Matrix“-Methoden 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. wenn sie keine Ursprünge enthält).

Wenn sich ein Fehler jedoch auf eine Teilmenge von Elementen in der Antwort bezieht (z. B. wenn für eine Kombination aus Start- und Zielort keine Route berechnet werden kann), wird nur für die vom Fehler betroffenen Elemente ein Fehlercode zurückgegeben.

gRPC-Stream-Ergebnisse

Die gRPC-Methode ComputeRouteMatrix verwendet 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 ist nicht garantiert, 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 Startpunkte und Ziele entspricht der Startpunkt der Route origins[origin_index] für ein bestimmtes Element und das Ziel der Route destinations[destination_index]. Diese Arrays sind nullindexiert. Es ist wichtig, die Reihenfolge der Ursprungs- und Zielliste zu speichern.

Beispiele für „Compute 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 haben Sie einen

  • Geben Sie ein Array mit zwei Start- und zwei Zielwegpunkten an. Die Methode berechnet eine Route von jedem Startpunkt zu jedem Ziel, sodass die Antwort vier Routen enthält.

    In einem Array befindet sich das erste Element an Index 0, das zweite 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 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 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 Start- und Zielwegpunkte.

Sie können die einzelnen Routen in der Antwort anhand der Antwortfelder originIndex und destinationIndex identifizieren. Beispiel: Ein originIndex-Wert von 1 in der Antwort entspricht einer Route, die anhand des Wegpunkts mit dem Index 1 im origins-Array 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 gRPC-Beispielanfrage. Im Java-Beispiel auf dieser Seite werden sowohl „Compute Routes“ als auch „Compute Route Matrix“ aufgerufen.