Impostare un punto di accesso per un percorso

Sviluppatori dello Spazio economico europeo (SEE)

Per impostazione predefinita, le tappe intermedie vengono utilizzate per le soste per i ritiri e le consegne, ma puoi anche specificare che una tappa intermedia è pensata solo per il passaggio.

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

Configura una tappa intermedia in modo che sia una tappa di passaggio impostando la proprietà via della tappa 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 apparire l'itinerario finale in tempo reale e contribuisce a garantire che i waypoint siano posizionati in posizioni accessibili a Compute Routes.

Il seguente esempio mostra come contrassegnare un waypoint intermedio come waypoint pass-through.

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

Accedere agli ID luogo per le tappe intermedie

Se specifichi la posizione di un'origine, una destinazione o un waypoint 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 waypoint, 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:

  • Specifichi tre tappe intermedie in una richiesta. Due di questi waypoint sono specificati da stringhe di indirizzi e uno da 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 l'origine, la destinazione e due dei tre waypoint. Questi sono i 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"
      }
    ]
  }
}