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, die einen Ausgangs-Wegpunkt, einen Durchgangs-Wegpunkt und einen Ziel-Wegpunkt enthält, enthält nur einen Routenabschnitt, der den Start- und Zielort verbindet und durch den Zwischenwegpunkt (via) führt.

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. Auf diese Weise kann der Nutzer in Echtzeit sehen, wie die endgültige Route aussehen wird, und Wegpunkte werden an Orten platziert, die für Compute Routes 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 Ausgangs-, Ziel- oder Zwischenwegpunkts als Adressstring oder Plus Code angeben, versucht die API, den relevantesten Standort 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:

  • In einer Anforderung geben Sie drei Zwischenwegpunkte 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 Array geocodingResults 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 mit 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"
      }
    ]
  }
}