Spécifier des lieux pour un itinéraire

Pour calculer un itinéraire, vous devez spécifier au minimum les emplacements du point de départ et de la destination de l'itinéraire. Vous définissez ces lieux en tant que points de cheminement sur l'itinéraire.

En plus du point de départ et de la destination, vous pouvez spécifier différents types de points de cheminement et leur gestion pour un itinéraire. Pour en savoir plus et obtenir des exemples, consultez les articles suivants:

Spécifier des lieux pour un itinéraire

Pour représenter un emplacement, vous devez créer un objet Waypoint (REST) ou Waypoint (gRPC). Dans la définition du point de cheminement, vous pouvez spécifier un lieu de l'une des manières suivantes:

Vous pouvez spécifier des emplacements pour tous les points de cheminement de la même manière dans une requête ou les combiner. Par exemple, vous pouvez utiliser des coordonnées de latitude/longitude pour le point de cheminement de départ et un ID de lieu pour le point de cheminement de destination.

Pour plus d'efficacité et de précision, utilisez des ID de lieu au lieu de coordonnées de latitude/longitude ou de chaînes d'adresse. Les ID de lieu sont explicites de manière unique et offrent des avantages de geocoding pour le routage, tels que les points d'accès et les variables de trafic. Ils permettent d'éviter les situations suivantes qui peuvent résulter d'autres méthodes de spécification d'un emplacement:

  • Si vous utilisez des coordonnées de latitude/longitude, le lieu peut être ancré à la route la plus proche de ces coordonnées (il ne s'agit peut-être pas d'un point d'accès à l'établissement), voire d'une route qui mène rapidement ou en toute sécurité à la destination.
  • Les chaînes d'adresse doivent d'abord être géocodées par l'API Routes afin de les convertir en coordonnées de latitude/longitude avant de pouvoir calculer un itinéraire. Cette conversion peut avoir un impact sur les performances.

Spécifier un lieu en tant qu'ID de lieu

Vous pouvez utiliser un ID de lieu pour spécifier l'emplacement d'un point de cheminement. Étant donné que les coordonnées de latitude et de longitude sont alignées sur les routes, il se peut qu'un ID de lieu offre de meilleurs résultats dans certains cas.

Récupérez les ID de lieu à partir de l'API Geocoding et de l'API Places (y compris Place Autocomplete). Pour en savoir plus sur les ID de lieu, consultez la présentation des ID de lieu.

L'exemple suivant utilise la propriété placeId afin de transmettre un ID de lieu pour origin et destination:

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

Spécifier un lieu en tant que coordonnées de latitude et de longitude

Pour définir la position d'un point de cheminement, spécifiez l'emplacement (REST) ou le position(gRPC) à l'aide de ses coordonnées de latitude/longitude.

Par exemple, spécifiez un point de cheminement pour l'itinéraire origin et destination à l'aide des coordonnées latitude et longitude:

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

Spécifier un lieu en tant que chaîne d'adresse

Les chaînes d'adresse sont des adresses littérales représentées par une chaîne (par exemple, "1600 Amphitheatre Parkway, Mountain View, CA"). Le geocoding est le processus de conversion d'une chaîne d'adresse en coordonnées de latitude et de longitude (latitude 37.423021 et longitude -122.083739, par exemple).

Lorsque vous transmettez une chaîne d'adresse pour l'emplacement d'un point de cheminement, l'API Routes géocode la chaîne en interne pour la convertir en coordonnées de latitude et de longitude.

Par exemple, pour calculer un itinéraire, vous spécifiez un point de cheminement pour l'itinéraire origin et destination à l'aide de chaînes d'adresse:

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

Dans cet exemple, l'API Routes géocode les deux adresses pour les convertir en coordonnées de latitude et de longitude.

Si la valeur de l'adresse est ambiguë, l'API Routes peut appeler une recherche pour faire la distinction entre des adresses similaires. Par exemple, "1st Street" peut être une valeur complète ou partielle pour "1st street NE" ou "1st St SE". Ce résultat peut être différent de celui renvoyé par l'API Geocoding. Les ID de lieu vous permettent d'éviter d'éventuels erreurs d'interprétation.

Définir la région de l'adresse

Si vous transmettez une chaîne d'adresse incomplète pour l'emplacement d'un point de cheminement, l'API peut utiliser des coordonnées de latitude/longitude géocodées incorrectes. Par exemple, vous pouvez envoyer une requête spécifiant "Toledo" comme point de départ et "Madrid" comme destination pour un itinéraire en voiture:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

Dans cet exemple, "Toledo" est interprété comme une ville de l'État de l'Ohio aux États-Unis, et non en Espagne. Par conséquent, la requête renvoie un tableau vide, ce qui signifie qu'aucune route n'existe:

{
  []
}

Vous pouvez configurer l'API pour qu'elle renvoie des résultats pondérés en faveur d'une région particulière en incluant le paramètre regionCode. Ce paramètre spécifie le code régional sous la forme d'une valeur ccTLD ("domaine de premier niveau") à deux caractères. La plupart des codes ccTLD sont identiques aux codes ISO 3166-1, à quelques exceptions près. Par exemple, le ccTLD du Royaume-Uni est "uk" (.co.uk), tandis que son code ISO 3166-1 est "gb" (techniquement pour l'entité "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord").

Une requête d'itinéraire pour "Toledo" vers "Madrid" incluant le paramètre regionCode renvoie les résultats appropriés, car "Toledo" est interprété comme une ville d'Espagne:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

La réponse contient maintenant l'itinéraire calculé de Tolède, en Espagne, à Madrid (Espagne) :

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

Spécifier un lieu comme Plus Code

De nombreuses personnes n'ont pas d'adresse précise, ce qui peut compliquer la réception des colis. Les utilisateurs disposant d'une adresse peuvent également préférer accepter les livraisons à des lieux plus spécifiques, tels qu'une entrée secondaire ou une station de chargement.

Les Plus Codes fonctionnent comme des adresses postales pour les personnes ou les lieux qui n'ont pas d'adresse réelle. Au lieu des adresses avec des noms et des numéros de rue, les Plus Codes sont basés sur des coordonnées de latitude/longitude et s'affichent sous forme de chiffres et de lettres.

Google a développé les Plus Codes pour permettre à tous les utilisateurs d'utiliser des adresses. Un Plus Code est une référence de lieu encodée, dérivée des coordonnées de latitude/longitude, qui représente une zone: 1/8 000e de degré par 1/8 000e de degré (environ 14 m x 14 m à l'équateur) ou moins. Vous pouvez utiliser les Plus Codes pour remplacer les adresses postales dans les endroits où elles n'existent pas, ou lorsque les bâtiments ne sont pas numérotés ou que les rues ne sont pas nommées.

Les Plus Codes doivent être mis en forme comme un code global ou composé:

  • Un code global est composé d'un indicatif régional à quatre caractères et d'un code local à six caractères ou plus.

    Par exemple, pour l'adresse "1600 Amphitheatre Parkway, Mountain View, CA", le code global est "849V" et le code local est "CWC8+R9". Utilisez ensuite l'intégralité du Plus Code à 10 caractères pour spécifier la valeur d'emplacement "849VCWC8+R9".

  • Un code composé est composé d'un code local à six caractères ou plus, associé à un emplacement explicite.

    Par exemple, l'adresse "450 Serra Mall, Stanford, CA 94305, États-Unis" affiche le code local "CRHJ+C3". Pour une adresse composée, combinez le code local avec la ville, l'État, le code postal et la partie pays de l'adresse sous la forme "CRHJ+C3 Stanford, CA 94305, USA".

    Par exemple, calculez un itinéraire en spécifiant un point de cheminement pour l'itinéraire origin et destination à l'aide des Plus Codes:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

Les Plus Codes sont compatibles avec les API Google Maps Platform, y compris Place Autocomplete, Place Details, l'API Directions et l'API Geocoding. Par exemple, vous pouvez utiliser l'API Geocoding pour effectuer le geocoding inversé d'un lieu spécifié par ses coordonnées de latitude/longitude afin de déterminer le Plus Code du lieu.