Routenmatrix berechnen

Mit der Routes API können Sie die Entfernung und Dauer einer Route für mehrere Start- und Zielorte berechnen. Dazu rufen Sie die Methode computeRouteMatrix (REST) oder die Streaming-Methode ComputeRouteMatrix auf (gRPC).

Bei einer Liste von Start- und Zielorten wird die Entfernung und Reisezeit einer Route von jedem Startort aus berechnet, der an jedem Zielort endet.

Anfragelimits

Die Compute Route-Matrix-Methoden erzwingen die folgenden Anfragelimits:

  • Die Anzahl der Elemente (Anzahl der Ziele × Anzahl der Ziele) darf 625 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 Qualität und Latenz konfigurieren.

  • Die maximale Anzahl von Wegpunkten (Startorte und Zielorte), die Sie mit einer Orts-ID angeben können, beträgt 50.

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. Beispielsweise enthält die gesamte Antwort einen Fehler, wenn die Anfrage fehlerhaft ist (z. B. hat sie keine Ursprünge).

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

Streamergebnisse

Die gRPC-Methode ComputeRouteMatrix übernimmt 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 die Ergebnisse verarbeiten können.

Die vom Stream zurückgegebenen Elemente können nicht in beliebiger Reihenfolge zurückgegeben werden. Daher enthält jedes Antwortelement ein origin_index und einen destination_index. Bei den in der Anfrage angegebenen Start- und Zielorten entspricht der Routenort origins[origin_index] für ein bestimmtes Element und das Routenziel entspricht destinations[destination_index]. Diese Arrays sind null indexiert. Es ist wichtig, die Ursprungs- und Ziellistenreihenfolgen zu speichern.

Beispiele für die Routenmatrix 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 tun Sie Folgendes:

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

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

  • Geben Sie eine Antwortfeldmaske an, um festzulegen, welche Felder der Antwort (REST) oder ComputeRoutesResponse (gRPC) zurückgegeben werden sollen. In diesem Beispiel konfigurieren Sie die Anfrage so, dass originIndex, destinationIndex, duration, distanceMeters, status und condition für jede Route zurückgegeben werden. Weitere Informationen finden Sie unter Felder auswählen, die zurückgegeben werden sollen.

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 Wegpunkte mit Start- und Zielort.

Identifizieren Sie jede Route in der Antwort mithilfe der Antwortfelder originIndex und destinationIndex. Beispielsweise entspricht eine originIndex von 1 in der Antwort einer Route, die vom Wegpunkt an 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 findest du in den Beispielen zu Beispiel für gRPC-Anfrage. Im Java-Beispiel auf dieser Seite werden sowohl die Compute Routes als auch die Compute Route Matrix aufgerufen.