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 un lieu de passage. Pour obtenir un exemple de point de cheminement pour un arrêt, consultez Définir un arrêt sur un itinéraire. Pour voir un exemple de point de cheminement à transmettre, consultez Définir un point pour un itinéraire à transmettre.
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 cheminement intermédiaires.
Pour chaque point de cheminement 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 partie du trajet.
Chaque étape d'un itinéraire 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'ensemble de l'objetRouteLeg
.
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 de l'étape 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": [ { ...