Définir des points de cheminement intermédiaires

Développeurs de l'Espace économique européen (EEE)

Les points de cheminement intermédiaires sont des lieux situés entre le point de départ et la destination que vous souhaitez traverser. Un point de cheminement intermédiaire peut être un arrêt ou un lieu de passage. Pour obtenir un exemple de point de repère pour un arrêt, consultez Définir un arrêt sur un itinéraire. Pour obtenir un exemple de point de cheminement à traverser, consultez Définir un point pour une route à traverser.

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

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

Chaque tronçon d'un itinéraire est représenté 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 chemin 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'ensemble 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 de cet appel contient le tableau legs. Chaque étape du trajet 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": [
                {
                  ...