Définir des points de cheminement intermédiaires

Les points de cheminement intermédiaires sont des lieux situés entre le point de départ et la destination que vous souhaitez que l'itinéraire traverse. Un point de cheminement intermédiaire peut être un arrêt, ou vous pouvez le spécifier comme lieu à traverser. Pour obtenir un exemple de point de cheminement pour un arrêt, consultez la section Définir un arrêt sur un itinéraire. Pour obtenir un exemple de point de cheminement à traverser, consultez l'article Définir le point de passage d'un itinéraire.

Utilisez la propriété de tableau intermediates de la méthode computeRoutes (REST) ou ComputeRoutes (gRPC) pour définir jusqu'à 25 points de cheminement intermédiaires.

Pour chaque point de cheminement intermédiaire de la requête, l'objet de routage (REST) ou l'objet de routage (gRPC) de la réponse ajoute une entrée au tableau legs pour fournir les détails de cette section du trajet.

Chaque section d'une route est représentée par un objet RouteLeg (REST) ou RouteLeg (gRPC). Contrôlez les champs RouteLeg à renvoyer à l'aide du masque de champ de réponse.

Exemple – Définir un point de cheminement intermédiaire

L'exemple suivant utilise la propriété de tableau intermediates pour ajouter un seul point de cheminement intermédiaire au corps de la requête POST d'un itinéraire.

Cet exemple utilise un masque de champ de réponse dans l'en-tête X-Goog-FieldMask qui spécifie de renvoyer les champs suivants dans la réponse:

  • routes.duration
  • routes.distanceMeters
  • routes.legs correspondant à l'intégralité de l'objet RouteLeg.
curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    },
    "sideOfRoad": true
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2022-10-15T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "routeModifiers": {
    "avoidTolls": false,
    "avoidHighways": false,
    "avoidFerries": false
  },
  "languageCode": "en-US",
  "units": "IMPERIAL"
}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs'
'https://routes.googleapis.com/directions/v2:computeRoutes'

La réponse à cet appel contient le tableau legs. Chaque étape de la section est représentée par un objet RouteLegStep (REST) ou RouteLegStep (gRPC).

{
  "routes": [
    {
      "legs": [
        # First leg
        {
            "distanceMeters": 207,
            "duration": "89s",
            "staticDuration": "89s",
            "polyline": {
                "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?"
            },
            "startLocation": {
                "latLng": {
                    "latitude": 37.4197318,
                    "longitude": -122.0826233
                }
            },
            "endLocation": {
                "latLng": {
                    "latitude": 37.419734,
                    "longitude": -122.08077919999998
                }
            },
            "steps": [            {
              "distanceMeters": 21,
              "staticDuration": "6s",
              "polyline": {
                "encodedPolyline": "ipkcFjgchVd@@"
              },
              "startLocation": {
                "latLng": {
                  "latitude": 37.4197318,
                  "longitude": -122.0826233
                }
              },
              "endLocation": {
                "latLng": {
                  "latitude": 37.41954,
                  "longitude": -122.08262750000002
                }
              }
            },
            ...
        },
        # Second leg
        {
            "distanceMeters": 598,
            "duration": "159s",
            "staticDuration": "159s",
            "polyline": {
                "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?"
            },
            "startLocation": {
                "latLng": {
                    "latitude": 37.419734,
                    "longitude": -122.08077919999998
                }
            },
            "endLocation": {
                "latLng": {
                    "latitude": 37.417616599999995,
                    "longitude": -122.07938820000001
                }
            },
            "steps": [
                {
                  ...