Punkt für eine Route festlegen

Standardmäßig werden Wegpunkte für Stopps bei Ein- und Ausstiegen verwendet. Sie können aber auch angeben, dass ein Zwischenwegpunkt nur durchquert werden soll.

Eine Route, die einen Ausgangs-Wegpunkt, einen Pass-Through-Wegpunkt und einen Ziel-Wegpunkt enthält, enthält nur einen Routenabschnitt, der Start und Ziel miteinander verbindet, während er über den Zwischen-Wegpunkt (via) führt.

Konfigurieren Sie einen Zwischen-Wegpunkt als Pass-Through-Wegpunkt. Dazu setzen Sie das Attribut via des Wegpunkts entweder mit Wegpunkt (REST) oder Wegpunkt (gRPC) auf true.

Die Eigenschaft via ist am effektivsten, wenn Routen erstellt werden, wenn der Nutzer die Wegpunkte auf der Karte zieht. Auf diese Weise kann der Nutzer in Echtzeit sehen, wie die endgültige Route aussehen könnte. Außerdem wird dafür gesorgt, dass Wegpunkte an Orten platziert werden, die für die Compute-Routen zugänglich sind.

Das folgende Beispiel zeigt, wie ein Zwischen-Wegpunkt als Durchgangs-Wegpunkt markiert wird.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

Auf Orts-IDs für Wegpunkte zugreifen

Wenn Sie den Standort eines Start-, Ziel- oder Zwischenwegpunkts als Adressstring oder als Plus Code angeben, versucht die API, den relevantesten Ort mit einer entsprechenden Orts-ID zu finden. Das Array geocodingResults.intermediates in den Ergebnissen enthält die Orts-ID, die der Position der Wegpunkte entspricht, sowie zusätzliche Daten zum Ort.

Verwenden Sie für jedes Element des Arrays intermediates das Attribut intermediateWaypointRequestIndex, um festzustellen, welcher Wegpunkt in der Anfrage der Orts-ID in der Antwort entspricht.

Beispiel:

  • In einer Anfrage geben Sie drei Wegpunkte an. Zwei dieser Wegpunkte werden durch Adressstrings und einer durch Breiten-/Längengradkoordinaten angegeben.

  • Sie nehmen geocodingResults in die Antwortfeldmaske auf, um festzulegen, dass das Array geocodingResults in den Ergebnissen zurückgegeben werden soll.

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA"
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063"
    }
  ],
  "travelMode": "DRIVE",
}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults'
'https://routes.googleapis.com/directions/v2:computeRoutes'

Die Antwort enthält das Array geocodingResults mit der Orts-ID für Ausgangsort, Zielort und für zwei der drei Wegpunkte. Dies sind die Wegpunkte bei Index 0 und 2 der Anfrage. Da der Wegpunkt bei Index 1 der Anfrage mithilfe von Breiten- und Längengradkoordinaten angegeben wurde, wird er im Array geocodingResults in der Antwort weggelassen.

{
  "routes": [{...}],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
     "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
            "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}