Conseils pour créer la meilleure expérience utilisateur possible lorsque vous naviguez dans un établissement avec une voiture

Ce document est une mise à jour d'un ancien article qui utilisait des versions antérieures des API GMP. Ce contenu est mis à jour avec la nouvelle version de l'API Places lancée en 2023-24 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 (POI), il a besoin d'accéder à un lieu à proximité, comme un parking ou un point d'accès. Imaginons un conducteur qui doit se rendre à un aéroport ou à un centre commercial. Lorsqu'il se rend à un aéroport, le conducteur essaie d'atteindre un terminal ou un point de dépôt 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 disposant d'une voiture. Dans ce cas, lorsque vous développez une application ou un service pour guider le conducteur, commencez par trouver l'endroit où il se rend, puis proposez-lui des destinations facultatives à proximité de cet endroit. Cette approche vous permet de fournir un meilleur service à vos clients et de montrer que vous appréciez leur temps, avec un effort de développement limité mais intelligent qui exploite les données de localisation fournies par Google Maps Platform.

Schéma du système

Nous allons vous montrer comment utiliser la nouvelle API Places et l'API Routes de manière séquentielle ou combinée pour identifier le bon emplacement où vous garer à proximité de votre destination. Cette solution vise à éliminer l'incertitude et les multiples interactions pour trouver une place de parking pendant la conduite, une fois que vous vous approchez de la destination finale. Découvrez deux exemples d'implémentation détaillée de ces cas.

Exemple 1 : une attraction touristique sans parking

Choisissez un emplacement qui n'est pas directement connecté au bord de la route afin qu'un itinéraire doive être récupéré séparément. La destination est Notre-Dame à Paris et nous utiliserons la gare de l'Est (48.87697775149635, 2.3592247806755564) comme point de départ.

Gare de l'Est

Le chauffeur quitte la gare à environ 16 minutes au nord de Notre-Dame. Notre-Dame est une attraction touristique célèbre située sur une île accessible par un pont, avec des rues à sens unique et aucun grand parking à proximité. Ce défi devrait donc être intéressant.

  1. Requête API Places

Cet exemple de requête API Places utilise la recherche textuelle 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 possédez pour les API Google Maps Platform Places et Routes activées dans la console Google Cloud. Pour en savoir plus, 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 champmask 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.

Photo de l'entrée de Notre-Dame Carte de la zone de Notre-Dame

En tant que développeur ou fournisseur de services, il est judicieux d'inviter automatiquement le conducteur à demander "Cherchez-vous un parking près de Notre-Dame ?" ou, s'il conduit un véhicule électrique, à rechercher une borne de recharge. L'expérience utilisateur sera différente en fonction de l'appareil et de 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 parkings situés à 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, au moment où vous exécuterez cet exemple, vos résultats peuvent varier. Utilisez cet emplacement dans la partie suivante, où nous enverrons une requête à l'API Routes.

  1. **Requête API Routes **

Pour trouver l'itinéraire entre la gare et une borne de recharge à proximité 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 destinée aux 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 parcours dans la réponse, définissez "routes.legs" dans le champmask. Chaque itinéraire se compose de plusieurs "étapes", qui contiennent plusieurs "étapes" indiquant la distance parcourue et les coordonnées. Pour trouver les coordonnées finales accessibles en voiture, utilisez le champ "endLocation" de la dernière étape d'un dernier trajet dans un itinéraire que vous avez sélectionné. "latitude": 48.854937299999996, "longitude": 2.3505841999999997

Cet emplacement peut ne pas sembler être le premier choix, mais lorsque vous regardez la carte ou Google Street View, vous constaterez qu'il se trouve à une très courte distance à pied, environ 6 à 7 minutes, de Notre-Dame.

Itinéraire vers Notre-Dame

Itinéraire à pied entre l'emplacement de stationnement de la borne de recharge et Notre-Dame

Résumé de l'exemple 1

Comme vous pouvez le constater, trouver un 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 à circuler dans des rues à sens unique ni à chercher un endroit où garer leur voiture dans une attraction touristique bondée. 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
  • Une recherche à proximité de l'API Places pour trouver un parking avec une borne de recharge de voiture électrique à moins de 500 mètres de ces coordonnées
  • Requête envoyée à l'API Routes pour trouver un itinéraire vers la borne de recharge

Exemple 2 : Guider vers un terminal dans un grand aéroport

Carte de l'aéroport d'Heathrow

Prenons un autre exemple où le conducteur tente d'atteindre une grande zone qui comporte plusieurs lieux, POI ou points de dépôt potentiels. Le conducteur 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.

L'avantage de la nouvelle fonctionnalité de saisie semi-automatique de l'API Places est qu'elle permet de définir un type principal comme critère de recherche, en plus de la prédiction de sous-établissements par l'API comme résultats de recherche potentiels. Dans ce cas, cela signifie que la recherche d'un aéroport affichera également les terminaux. Vous trouverez la liste complète des types à inclure ou à exclure dans la documentation.

curl -X POST -d '{
  "input": "Heathrow",
  "includedPrimaryTypes": ["airport"]
}' \
-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 la 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",

À l'aide du paramètre "placeId", nous pouvons 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 et les coordonnées de latitude et de longitude des emplacements de fin (51.4714348, "longitude": -0.48967890000000003).

Terminal 5 Street View

Récapitulatif de l'exemple 2

Comme dans l'exemple précédent, l'effort de développement pour fournir des conseils améliorés au conducteur est très faible, et les avantages en termes de temps gagnés pour le conducteur peuvent être mesurés. Nous avons effectué les requêtes suivantes:

  • Requête Place Autocomplete (nouvelle version) de l'API Places pour trouver le terminal 5 de l'aéroport d'Heathrow
  • Requête 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 certains 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 se déplacent en voiture est plutôt faible. Vous pouvez ainsi montrer comment vous tenez compte des 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 pour vos clients. Consultez notre dépôt GitHub public pour Google Maps Platform.

Étapes suivantes

Premiers pas avec GMP : https://developers.google.com/maps/get-started

Documentation complémentaire suggérée

Documentation sur la nouvelle fonctionnalité de saisie semi-automatique de l'API Places : 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 solutions Google Maps Platform