Obtenir des itinéraires bis

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

Par défaut, l'API Routes renvoie l'itinéraire par défaut, qui est généralement le plus rapide entre l'origine et la destination. Lorsque vous demandez des itinéraires alternatifs, l'API renvoie jusqu'à trois itinéraires en plus de l'itinéraire par défaut. Vos clients peuvent ensuite choisir l'itinéraire qui correspond le mieux à leurs besoins.

Éléments à prendre en compte lors de la demande d'itinéraires alternatifs

Pour demander des itinéraires alternatifs, tenez compte des éléments suivants :

  • La réponse contient au maximum trois itinéraires alternatifs. Toutefois, il arrive qu'aucun itinéraire alternatif ne soit disponible. Dans ce cas, la réponse ne contient que l'itinéraire par défaut.

  • Étant donné que le calcul d'itinéraires alternatifs nécessite un traitement supplémentaire, la demande d'itinéraires alternatifs peut augmenter le temps de réponse de l'API.

Exemple de demande d'itinéraires alternatifs

Définissez computeAlternativeRoutes sur true pour demander des itinéraires alternatifs. L' exemple suivant montre comment demander des itinéraires alternatifs dans une computeRoutes méthode (REST) requête.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference":"TRAFFIC_AWARE",
  "computeAlternativeRoutes": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Dans cet exemple, vous spécifiez un masque de champ afin que la réponse ne contienne que les duration, distanceMeters, et routeLabels propriétés pour chaque itinéraire. Votre client peut ensuite utiliser ces informations pour choisir l'itinéraire à emprunter. Pour en savoir plus, consultez Choisir les informations à renvoyer.

Exemple de réponse d'itinéraires alternatifs

Dans la réponse, utilisez la propriété de tableau routeLabels pour identifier chaque itinéraire :

  • Pour l'itinéraire par défaut, la propriété routeLabels contient DEFAULT_ROUTE.

  • Pour tout itinéraire alternatif, la propriété routeLabels contient DEFAULT_ROUTE_ALTERNATE.

Dans cet exemple, la réponse contient l'itinéraire par défaut et deux itinéraires alternatifs. Notez que les valeurs des propriétés duration et distanceMeters sont différentes pour chaque itinéraire :

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}

Inclure des polylignes dans la réponse

Pour permettre à l'utilisateur de sélectionner plus facilement l'itinéraire, ajoutez la polyligne de chaque itinéraire à la réponse. Vous pouvez ensuite afficher chaque polyligne sur une carte.

Pour ajouter la polyligne, incluez routes.polyline dans le masque de champ :

-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'

La réponse contient alors la polyligne de chaque itinéraire :

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "polyline": {
        "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "polyline": {
        "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "polyline": {
        "encodedPolyline": "FVLL|Af@HPAV…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}