Impostare un punto di accesso per un percorso

Per impostazione predefinita, le tappe intermedie vengono utilizzate per le soste per i ritiri e i depositi, ma puoi anche specificare che una tappa intermedia è solo di transito.

Un itinerario che contiene un waypoint di partenza, un waypoint intermedio di transito e un waypoint di destinazione contiene un solo tratto che collega l'origine e la destinazione passando per il waypoint intermedio (chiamato via).

Configura una waypoint intermedia come waypoint di transito impostando la proprietà via della waypoint su true utilizzando Waypoint (REST) o Waypoint (gRPC).

La proprietà via è più efficace quando si creano percorsi in risposta al trascinamento dei waypoint sulla mappa da parte dell'utente. In questo modo, l'utente può vedere come potrebbe essere il percorso finale in tempo reale e contribuire ad assicurare che i waypoint siano posizionati in località accessibili a Calcola percorsi.

L'esempio seguente mostra come contrassegnare un waypoint intermedio come waypoint di transito.

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

Accedere agli ID luogo per le tappe intermedie

Se specifichi la posizione di un punto di partenza, di destinazione o intermedio come stringa di indirizzo o come plus code, l'API tenta di trovare la posizione più pertinente con un ID luogo corrispondente. L'array geocodingResults.intermediates nei risultati contiene l'ID luogo corrispondente alla posizione dei check point, insieme a dati aggiuntivi sulla posizione.

Per ogni elemento dell'array intermediates, utilizza la proprietà intermediateWaypointRequestIndex per determinare quale waypoint intermedio nella richiesta corrisponde all'ID luogo nella risposta.

Ad esempio:

  • In una richiesta specifichi tre waypoint intermedi. Due di questi waypoint sono specificati tramite stringhe di indirizzi e uno tramite coordinate di latitudine/longitudine.

  • Includi geocodingResults nella maschera del campo di risposta per specificare di restituire 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 la partenza, la destinazione e per due dei tre waypoint. Si tratta dei waypoint agli indici 0 e 2 della richiesta. Poiché il waypoint all'indice 1 della richiesta è stato specificato utilizzando le coordinate di latitudine/longitudine, viene 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"
      }
    ]
  }
}