Punkt für eine Route festlegen

Standardmäßig werden Zwischenstopps für Abhol- und Bringstellen verwendet. Sie können aber auch angeben, dass ein Zwischenstopp nur zum Durchfahren gedacht ist.

Eine Route mit einem Start-, einem Zwischen- und einem Zielwegpunkt enthält nur einen Routenabschnitt, der den Start- und den Zielort verbindet und dabei den Zwischenwegpunkt (via) passiert.

Konfigurieren Sie einen Zwischenpunkt als Durchgangspunkt, indem Sie die Eigenschaft via des Wegpunkts entweder mit Waypoint (REST) oder Waypoint (gRPC) auf true festlegen.

Die via-Eigenschaft ist am effektivsten, wenn Routen erstellt werden, wenn der Nutzer die Wegpunkte auf der Karte zieht. So kann der Nutzer in Echtzeit sehen, wie die endgültige Route aussehen könnte, und dafür sorgen, dass Wegpunkte an Orten platziert werden, die für die Routenberechnung zugänglich sind.

Das folgende Beispiel zeigt, wie Sie einen Zwischenpunkt als Durchfahrpunkt markieren.

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

Auf Orts-IDs für Wegpunkte entlang der Route zugreifen

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

Verwenden Sie für jedes Element des Arrays intermediates die Eigenschaft intermediateWaypointRequestIndex, um zu ermitteln, welcher Zwischen-Wegpunkt in der Anfrage der Orts-ID in der Antwort entspricht.

Beispiel:

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

  • Sie fügen geocodingResults in die Antwortfeldmaske ein, um anzugeben, dass das geocodingResults-Array 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 geocodingResults-Array mit der Orts-ID für den Start- und Zielort sowie für zwei der drei Wegpunkte. Das sind die Wegpunkte an den Indizes 0 und 2 der Anfrage. Da der Wegpunkt an Index 1 der Anfrage mithilfe von Breiten-/Längengradkoordinaten angegeben wurde, wird er aus dem geocodingResults-Array in der Antwort entfernt.

{
  "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"
      }
    ]
  }
}