Route Matrix berechnen

Mit der Methode ComputeRouteMatrix der Routes Preferred API können Sie die Entfernung und Dauer einer Route für mehrere Start- und Zielorte berechnen. ComputeRouteMatrix unterstützt sowohl Streaming-gRPC-Aufrufe als auch REST-HTTP-Aufrufe.

Anhand einer Liste von Start- und Zielortpaaren berechnet ComputeRouteMatrix die Entfernung und Dauer einer Route, die an jedem Startort beginnt und an jedem Zielort endet. Jedes Element des Streams entspricht den Informationen für eine einzelne Route.

Die Methode ComputeRouteMatrix bietet gegenüber der Distance Matrix API (Legacy) mehrere Vorteile:

  • Durch Streaming können Elemente zurückgegeben werden, bevor die gesamte Matrix berechnet wurde. Dadurch wird die Latenz verringert.
  • ComputeRouteMatrix bietet detaillierte Optionen für die Traffic-Berechnung, sodass Sie Entscheidungen über die Abwägung zwischen Qualität und Latenz treffen können.
  • Anfragen werden innerhalb der Infrastruktur von Google mit einer höheren Priorität ausgeführt, was zu einer höheren Verfügbarkeit führt.
  • Sie können für Wegpunkte Informationen zum Kurs (Fahrtrichtung) und zur Straßenseite angeben.
  • Sie können Informationen zu Mautgebühren sowie zur Routenlänge und zur voraussichtlichen Ankunftszeit anfordern.

ComputeRouteMatrix-Methode aktivieren

Bevor Sie die Methode ComputeRouteMatrix in Ihrem Code verwenden können, müssen Sie sie aktivieren. Weitere Informationen zum Aktivieren von Routes Preferred API-Methoden finden Sie unter Erste Schritte.

Methode „ComputeRouteMatrix“ verwenden

Die Methode ComputeRouteMatrix ist über den Routes Preferred-Endpunkt v1 verfügbar.

Weitere Informationen finden Sie in der folgenden Dokumentation:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

In den folgenden allgemeinen Schritten wird beschrieben, wie Sie mit gRPC die Methode ComputeRouteMatrix aufrufen:

  1. Checken Sie die erforderlichen Protokollpuffer aus dem googleapis-Repository aus:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Beachten Sie, dass einige Build-Systeme wie Go dies möglicherweise automatisch für Sie erledigen.

  2. Generieren Sie den relevanten Protobuffer-Code mit Ihrer bevorzugten Sprache und Ihren bevorzugten Build-Tools.

  3. Anfrage generieren Zwei erforderliche Metadaten müssen mit der Anfrage gesendet werden:

    • X-Goog-Api-Key muss auf Ihren API-Schlüssel festgelegt sein.
    • X-Goog-Fieldmask muss auf eine durch Kommas getrennte Liste der Felder festgelegt werden, die Sie in der Antwort benötigen. Beispiel: X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Sie können das Platzhalterzeichen (*) verwenden, um alle Felder anzugeben. Davon wird jedoch abgeraten. Verwenden Sie das Platzhalterzeichen, um die API-Antwort zu testen und zu verstehen, aber listen Sie die gewünschten Felder in der Feldmaske in Ihrem Produktionscode explizit auf.

      Weitere Informationen zum Erstellen des Feldmaskenstrings finden Sie unter https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Wenn Sie nicht benötigte Felder deaktivieren, kann dies die Latenz verringern, da für diese Felder möglicherweise weitere Berechnungen erforderlich sind. Die Latenz bleibt stabil, wenn Sie die erforderlichen Felder angeben und später neue Felder hinzugefügt werden, die mehr Rechenleistung erfordern.

  4. Senden Sie Ihre Anfrage an routespreferred.googleapis.com:443.Sie müssen das TLS-Protokoll verwenden.

Beispiele für die Verwendung der Methode ComputeRouteMatrix finden Sie unter Beispiele für die Berechnung einer Routenmatrix (Beta).

Ein Unterscheidungsmerkmal der Methode ComputeRouteMatrix ist, dass Fehlercodes entweder für den gesamten Stream oder für einzelne Elemente zurückgegeben werden können. Die Streamverbindung gibt beispielsweise einen Fehler zurück, wenn die Anfrage fehlerhaft ist (z. B. wenn sie keine Ursprünge hat). Wenn sich ein Fehler jedoch nur auf einige Elemente des Streams bezieht (z. B. wenn eine ungültige Orts-ID für einen Startpunkt festgelegt wurde), enthalten nur die vom Fehler betroffenen Elemente Fehlercodes.

Es wird nicht garantiert, dass die vom Stream zurückgegebenen Elemente in einer bestimmten Reihenfolge zurückgegeben werden. Daher enthält jedes Element ein origin_index und ein destination_index. Für die in der Anfrage angegebenen Start- und Zielorte entspricht der Startort 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.

Mautgebühren berechnen

Informationen zur Berechnung von Mautgebühren finden Sie unter Mautgebühren berechnen.

Beispiele für die Berechnung von Mautgebühren finden Sie unter Beispiele für die Berechnung einer Routenmatrix.