Punkt für eine Route festlegen

Standardmäßig werden Wegpunkte für Zwischenhalte für Abhol- und ab. Sie können aber auch festlegen, dass ein Wegpunkt nicht passieren muss.

Eine Route, die einen Ausgangswegpunkt bzw. eine Zwischendurchführung enthält und ein Zielwegpunkt nur einen Routenabschnitt enthält, der verbindet den Start- und Zielort, während er durch die Zwischenlinie verläuft. (als via bezeichnet).

Konfigurieren Sie einen Zwischenwegpunkt als Durchgangspunkt, indem Sie Wenn Sie das Attribut via des Wegpunkts auf true setzen, verwenden Sie entweder Wegpunkt (REST) oder Wegpunkt (gRPC).

Das Attribut via ist am effektivsten, wenn Routen als Reaktion auf indem der Nutzer die Wegpunkte auf der Karte zieht. Dadurch sehen die Nutzenden, kann die endgültige Route in Echtzeit angezeigt werden. So wird sichergestellt, dass Wegpunkte an Standorten, die für Compute Routes zugänglich sind.

Das folgende Beispiel zeigt, wie ein Wegpunkt als Pass-Through-Wegpunkt.

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

Auf Orts-IDs für Wegpunkte zugreifen

Wenn Sie den Standort eines Ausgangsorts, Zielorts oder Wegpunkts angeben als Adressstring oder Plus Code enthalten, versucht die API, den relevantesten Standort mit einer entsprechenden Orts-ID. Die geocodingResults.intermediates -Array in den Ergebnissen die Orts-ID enthält, die dem Standort des sowie zusätzliche Daten zum Ort.

Verwenden Sie für jedes Element des Arrays intermediates die Methode intermediateWaypointRequestIndex, um festzulegen, in der Anfrage entspricht der Orts-ID in der Antwort.

Beispiel:

  • In einer Anforderung geben Sie drei Zwischenwegpunkte an. Zwei davon Wegpunkte werden durch Adress-Strings und einmal durch Breiten- und Längengrad angegeben. Koordinaten.

  • Sie fügen geocodingResults in die Antwortfeldmaske ein, um anzugeben, dass das Array geocodingResults in den Ergebnissen zurückgeben.

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 bei den Indexen 0 und 2 der Anfrage an. Da der Wegpunkt bei Index 1 die Anfrage mithilfe von Breitengrad/Längengrad-Koordinaten angegeben wurde, wird in der Antwort im geocodingResults-Array 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"
      }
    ]
  }
}