Impostare un punto di accesso per un percorso

Per impostazione predefinita, le tappe intermedie sono utilizzate per fermarsi per i ritiri e gli abbandoni, ma puoi anche specificare che una tappa intermedia si riferisce passare attraverso.

Un percorso che contiene una tappa di partenza, una tappa intermedia tappa del percorso, mentre una tappa di destinazione contiene solo un tratto di percorso che collega l'origine e la destinazione, passando per il percorso intermedio (denominata tappa via).

Configura un waypoint intermedio come waypoint passthrough Impostando la proprietà via della tappa su true utilizzando Waypoint (REST) o Waypoint (gRPC).

La proprietà via è più efficace quando crei route in risposta a all'utente trascinando le tappe sulla mappa. In questo modo l'utente può vedere il percorso finale può essere visualizzato in tempo reale e aiuta a garantire che le tappe siano posizionate in località accessibili a Compute Routes.

L'esempio seguente mostra come contrassegnare una tappa intermedia come una tappa successiva.

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

Accedi agli ID dei luoghi per le tappe intermedie

Se specifichi la posizione di un'origine, una destinazione o una tappa intermedia come stringa indirizzo o come Plus Code, l'API tenta di trovare località più pertinente con un ID luogo corrispondente. La geocodingResults.intermediates nei risultati contiene l'ID luogo corrispondente alla posizione tappe, oltre a dati aggiuntivi sul luogo.

Per ogni elemento dell'array intermediates, utilizza il metodo Proprietà intermediateWaypointRequestIndex per determinare quale intermedia il waypoint nella richiesta corrisponde all'ID luogo nella risposta.

Ad esempio:

  • Devi specificare tre tappe intermedie in una richiesta. Due di questi Le tappe sono specificate da stringhe di indirizzo e una da latitudine/longitudine coordinate.

  • Includi geocodingResults nella maschera del campo di risposta per specificare restituiscono l'array geocodingResults nei risultati.

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'

La risposta include l'array geocodingResults contenente l'ID luogo per il luogo di partenza, la destinazione e due delle tre tappe. Queste sono le le tappe agli indici 0 e 2 della richiesta. Poiché la tappa all'indice 1 di la richiesta sia stata specificata utilizzando le coordinate di latitudine/longitudine, omesso dall'array geocodingResults nella risposta.

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