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

Für die Methoden „Compute Route Matrix“ 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 entspricht also der Anzahl der Startorte mal der Anzahl der Zielorte. Wenn Sie beispielsweise 10 Ausgangspunkte und 10 Ziele haben, sind das 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 mit einer Adresse oder Orts-ID angeben, können Sie insgesamt bis zu 50 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. 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 akzeptiert 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.

Die vom Stream zurückgegebenen Elemente werden nicht garantiert in einer bestimmten Reihenfolge zurückgegeben. Daher enthält jedes Antwort-Element ein origin_index und ein destination_index. Für die in der Anfrage angegebenen Start- und Zielorte entspricht der Routenstartort für ein bestimmtes Element origins[origin_index] und das Routenziel destinations[destination_index]. Diese Arrays sind nullindiziert. Es ist wichtig, die Reihenfolge der Herkunfts- 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:

  • Geben Sie ein Array mit zwei Start- und zwei Ziel-Waypoints an. Mit der Methode wird eine Route von jedem Start- zum jeweiligen Zielort berechnet. Die Antwort enthält also vier Routen.

    Im Array befindet sich das erste Element an Index 0, das zweite an Index 1 usw.

  • Fügen Sie eine Antwortfeldmaske ein, 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.

Identifizieren Sie jede Route in der Antwort anhand der Antwortfelder originIndex und destinationIndex. Ein originIndex von 1 in der Antwort entspricht beispielsweise einer Route, die anhand des Wegpunkts 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. Im Java-Beispiel auf dieser Seite werden sowohl „Compute Routes“ als auch „Compute Route Matrix“ aufgerufen.