Définir un point à traverser

Par défaut, des points de cheminement intermédiaires sont utilisés pour les arrêts mais vous pouvez aussi préciser qu'un point de cheminement intermédiaire à transmettre.

un itinéraire qui contient un point de cheminement de départ, un passthrough intermédiaire un point de cheminement, tandis qu'un point de cheminement vers une destination ne contient qu'une section qui relie le point de départ et la destination, en passant par la couche intermédiaire (appelé point de cheminement via).

Configurez un point de cheminement intermédiaire en tant que point de cheminement passthrough en Définissez la propriété via du point de cheminement sur true à l'aide de Waypoint (REST) ou Waypoint (gRPC).

La propriété via est plus efficace lorsque vous créez des routes en réponse à l'utilisateur en faisant glisser les points de cheminement sur la carte. Cela permet à l'utilisateur de voir comment l'itinéraire final peut s'afficher en temps réel et permet de s'assurer que les points de cheminement sont placés dans des emplacements accessibles par Compute Routes.

L'exemple suivant montre comment marquer un point de cheminement intermédiaire comme et un point de cheminement direct.

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

Accéder aux ID de lieu pour les points de cheminement intermédiaires

Si vous spécifiez l'emplacement d'un point de départ, d'une destination ou d'un point de cheminement intermédiaire en tant que chaîne d'adresse ou Plus code, l'API tente de trouver le l'emplacement le plus pertinent, avec un ID de lieu correspondant. La geocodingResults.intermediates dans les résultats contient l'identifiant de lieu correspondant à l'emplacement des points de cheminement, ainsi que des données supplémentaires sur le lieu.

Pour chaque élément du tableau intermediates, utilisez la méthode intermediateWaypointRequestIndex pour déterminer le niveau point de cheminement dans la requête correspond à l'identifiant de lieu dans la réponse.

Exemple :

  • Vous spécifiez trois points de cheminement intermédiaires dans une requête. Deux d'entre elles les points de cheminement sont spécifiés par des chaînes d'adresse et un par des chaînes de latitude/longitude. coordonnées.

  • Vous incluez geocodingResults dans le masque de champ de réponse pour indiquer à renvoient le tableau geocodingResults dans les résultats.

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 réponse inclut le tableau geocodingResults contenant l'ID de lieu pour le point de départ, la destination et pour deux des trois points de cheminement. Il s'agit des points de cheminement aux indices 0 et 2 de la requête. Comme le point de cheminement à l'index 1 de la requête a été spécifiée en utilisant les coordonnées de latitude/longitude, est omis du tableau geocodingResults dans la réponse.

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