Ce document est une mise à jour d'un ancien article qui utilisait les versions précédentes des API GMP. Ce contenu a été mis à jour pour la nouvelle version de l'API Places lancée en 2023-2024 et de l'API Routes lancée en 2023.
En général, lorsqu'un utilisateur se rend en voiture à un point d'intérêt, il a en fait besoin d'un itinéraire vers un lieu à proximité, comme un parking ou un point d'accès. Imaginez un chauffeur qui doit se rendre à l'aéroport ou dans un centre commercial. Lorsque vous vous rendez à l'aéroport, le chauffeur essaie d'atteindre un terminal ou un point de dépose plutôt que le centre de l'aéroport. De même, un parking à côté du centre commercial peut être une bien meilleure option pour un utilisateur avec une voiture. Dans ce cas, lorsque vous développez une application ou un service pour guider le conducteur, commencez par trouver le lieu où il se rend, puis proposez-lui des destinations facultatives à proximité. Cette approche vous permet de fournir un meilleur service à vos clients et de leur montrer que vous accordez de l'importance à leur temps, grâce à un effort de développement petit mais intelligent qui exploite les données de localisation fournies par Google Maps Platform.
Nous vous montrerons comment utiliser la nouvelle API Places et l'API Routes de manière séquentielle ou combinée pour identifier le bon emplacement de stationnement à côté de votre destination. Cette solution vise à éliminer l'incertitude et les interactions multiples pour trouver une place de parking en conduisant, une fois plus près de la destination finale. Découvrez en détail deux exemples d'implémentation de ces cas.
Exemple 1 : une attraction touristique sans parking
Choisissez un lieu qui n'est pas directement relié à la route afin qu'un itinéraire doive être récupéré séparément. La destination est Notre-Dame à Paris et, comme point de départ, nous utiliserons la gare de l'Est (48.87697775149635, 2.3592247806755564).
Le chauffeur quitte la station à environ 16 minutes au nord de Notre-Dame. Notre-Dame est une célèbre attraction touristique située sur une île accessible par un pont. Certaines rues sont à sens unique et il n'y a pas de grand parking à proximité. Ce sera donc un défi intéressant.
1. Requête API Places
Cet exemple de requête de l'API Places utilise la recherche de texte pour trouver Notre-Dame. Pour en savoir plus, consultez la documentation pour les développeurs. Dans ces exemples, "$APIKEY" correspond à la clé API que vous avez pour les API Places et Routes de Google Maps Platform activées dans la console Google Cloud. Pour obtenir une explication plus détaillée, consultez la documentation sur les premiers pas avec Google Maps Platform.
Les nouvelles requêtes de l'API Places ont un nouveau format. Les champs de réponse ne sont plus fixes. En tant que développeur, vous devez définir un masque de champ dans l'en-tête. L'utilisation du fieldmask est définie dans la documentation.
curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'
Avec le contenu "notre_date.json" pour les paramètres de recherche :
{
"textQuery": "Notre Dame, Paris",
"languageCode": "en"
}
La réponse à la requête ci-dessus fournit les coordonnées de latitude et de longitude suivantes :
{
"places": [
{
"id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
"formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
"location": {
"latitude": 48.852968200000007,
"longitude": 2.3499021
},
"displayName": {
"text": "Cathédrale Notre-Dame de Paris",
"languageCode": "en"
}
}
]
}
Comme vous pouvez le voir, les coordonnées indiquent bien Notre-Dame.
![]() |
![]() |
En tant que développeur ou fournisseur de services, il est judicieux d'inviter automatiquement le conducteur à rechercher un parking à proximité de Notre-Dame ou, s'il possède un véhicule électrique, à rechercher une borne de recharge. L'expérience utilisateur sera différente selon l'appareil et l'écran, mais un texte de boîte de dialogue subtil qui disparaît au bout d'un court laps de temps peut être envisagé dans ce cas. Pour trouver un parking à proximité de Notre-Dame, effectuez une recherche à proximité avec l'API Places en utilisant les types "parking" et "electric_vehicle_charging_station" avec un rayon de 500 mètres. L'exemple suivant biaisera les résultats vers les zones de stationnement situées à moins de 500 mètres de Notre-Dame.
curl -X POST -d '{
"includedTypes": ["parking", "electric_vehicle_charging_station"],
"maxResultCount": 10,
"rankPreference": "DISTANCE",
"locationRestriction": {
"circle": {
"center": {
"latitude": 48.852968200000007,
"longitude": 2.3499021},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby
Le premier résultat est une borne de recharge située aux coordonnées 48.854981, 2.350629. Toutefois, vos résultats peuvent varier au moment où vous exécutez cet exemple. Utilisez cet emplacement dans la partie suivante, où nous allons effectuer une requête API Routes.
2. Requête API Routes
Pour trouver l'itinéraire de la gare à une borne de recharge proche de Notre-Dame, vous devez envoyer une requête à l'API Routes. Il vous suffit de définir les paramètres d'origine et de destination. Pour en savoir plus, consultez la documentation pour les développeurs.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 48.87697775149635,
"longitude": 2.3592247806755564
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 48.854981,
"longitude": 2.350629
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
La réponse de l'API Routes contient généralement plusieurs suggestions d'itinéraires. Pour inclure les données de route dans la réponse, définissez "routes.legs" dans le masque de champ. Chaque itinéraire se compose de plusieurs "étapes", qui contiennent elles-mêmes plusieurs "sous-étapes" indiquant la distance à parcourir et les coordonnées. Pour trouver les coordonnées finales accessibles en voiture, utilisez le champ "endLocation" de la dernière étape de la dernière section d'un itinéraire que vous avez sélectionné. "latitude": 48.854937299999996, "longitude": 2.3505841999999997
Cet emplacement peut sembler ne pas être le premier choix, mais lorsque vous regardez la carte ou Google Street View, vous constaterez qu'il se trouve à quelques minutes à pied de Notre-Dame, environ six à sept minutes.
Itinéraire à pied de la place de parking de la borne de recharge à Notre-Dame
Récapitulatif pour l'exemple 1
Comme vous pouvez le voir, trouver une place de parking pour une voiture ne nécessite que quelques appels d'API et l'affichage de la suggestion au conducteur. Cela permet à vos utilisateurs de gagner du temps, car ils n'ont pas à chercher une place de parking dans un lieu touristique bondé ni à faire le tour du pâté de maisons pour trouver une place. En résumé, nous avons effectué les requêtes d'API suivantes :
- Requête Text Search de l'API Places pour trouver les coordonnées de Notre-Dame
- Recherche à proximité dans l'API Places pour trouver un parking avec une borne de recharge pour voiture électrique à moins de 500 mètres de ces coordonnées
- Requête de l'API Routes pour trouver un itinéraire vers la borne de recharge
Exemple 2 : Guider un utilisateur vers un terminal dans un grand aéroport
Prenons un autre exemple : le chauffeur essaie d'atteindre une grande zone comportant plusieurs lieux, points d'intérêt ou points de dépose potentiels. Le chauffeur part du stade de Wembley, au Royaume-Uni (51.557263604707224, -0.2794575145680608), et essaie de se rendre au terminal 5 de l'aéroport de Londres Heathrow.
La nouvelle fonctionnalité de saisie semi-automatique de l'API Places permet de définir des types principaux comme critères de recherche, en les combinant avec l'API qui prédit les sous-établissements comme résultats de recherche potentiels. Dans ce cas, cela signifie que la recherche d'un aéroport et d'un parking renverra également des terminaux ou des parkings. Vous trouverez la liste complète des types à inclure ou à exclure dans la documentation.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport", "parking"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete
La requête ci-dessus nous donne une liste des terminaux et des points de dépôt individuels de ces terminaux. Dans la liste des résultats, nous trouvons "London Heathrow Airport Terminal 5" et son ID de lieu :
"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",
Le paramètre "placeId" nous permet d'indiquer à l'API Routes que nous essayons d'atteindre un lieu plutôt que des coordonnées arbitraires.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 51.557263604707224,
"longitude": -0.2794575145680608
}
}
},
"destination":{
"placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Comme dans l'exemple précédent, en lisant toutes les étapes de la réponse JSON, vous trouverez la dernière partie du trajet ainsi que les coordonnées de latitude et de longitude des lieux de destination (51.4714348, "longitude": -0.48967890000000003).
Récapitulatif de l'exemple 2
Comme dans l'exemple précédent, l'effort de développement pour fournir de meilleures indications au conducteur est très faible et les avantages en termes de temps gagné peuvent être mesurés. Nous avons effectué les demandes suivantes :
- Requête d'autocomplete de l'API Places (nouvelle version) pour trouver le terminal 5 de l'aéroport d'Heathrow
- Requête de l'API Routes pour obtenir un itinéraire de Wembley au terminal 5
Cet exemple ne fait qu'effleurer les nouvelles fonctionnalités de l'API Places. Découvrez quelques-uns des nouveaux types de lieux, comme les pistes d'atterrissage et les aéroports internationaux.
Conclusion
Comme vous pouvez le constater, l'effort de développement requis pour fournir un service premium à vos clients qui voyagent en voiture est plutôt faible. Vous pouvez ainsi montrer que vous pensez aux besoins de vos clients.
À des fins de développement, vous pouvez utiliser de nombreuses bibliothèques et outils disponibles pour vous aider à créer les services destinés à vos clients. Consultez notre dépôt GitHub public pour la plate-forme Google Maps.
Actions suivantes
Premiers pas avec GMP : https://developers.google.com/maps/get-started
Lectures complémentaires suggérées
Documentation sur la saisie semi-automatique de l'API Places (nouvelle version) : https://developers.google.com/maps/documentation/places/web-service/place-autocomplete
Documentation de l'API Routes : https://developers.google.com/maps/documentation/routes
Contributeurs
Auteur principal : Mikko Toivanen | Ingénieur de solutions Google Maps Platform