Punkt für eine Route festlegen

Standardmäßig werden Zwischen-Wegpunkte für Haltestellen an Ein- und Ausstiegen verwendet. Sie können aber auch angeben, dass ein Zwischenwegpunkt nur für eine Durchfahrt verwendet werden soll.

Eine Route, die einen Ausgangs-Wegpunkt, einen Durchgangs-Wegpunkt und einen Ziel-Wegpunkt enthält, enthält nur einen Routenabschnitt, der den Start- und Zielpunkt verbindet und dabei den Zwischenwegpunkt (via) führt.

Konfiguriere einen Wegpunkt als Durchgangspunkt, indem du das Attribut via des Wegpunkts mithilfe von Wegpunkt (REST) oder Wegpunkt (gRPC) auf true setzt.

Die Eigenschaft via ist am effektivsten, wenn Routen erstellt werden sollen, 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.

Im folgenden Beispiel wird gezeigt, wie ein Zwischenwegpunkt als Passthrough-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 Ausgangs-, Ziel- oder Zwischenwegpunkts als Adressstring oder Plus Code angeben, versucht die API, den relevantesten Standort mit einer entsprechenden Orts-ID zu finden. Das Array geocodingResults.intermediates 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 intermediates-Arrays die Eigenschaft intermediateWaypointRequestIndex, um zu bestimmen, welcher 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 nehmen geocodingResults in die Antwortfeldmaske auf, 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 Start- und Zielort und für zwei der drei Wegpunkte. Dies sind die Wegpunkte an den Indexen 0 und 2 der Anfrage. Da der Wegpunkt an Index 1 der Anfrage mithilfe von Breiten- und Längengradkoordinaten angegeben wurde, wird er im geocodingResults-Array 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"
      }
    ]
  }
}