Combiner les résumés d'itinéraires avec la recherche sur l'itinéraire
Vous pouvez combiner les calculs de résumé de l'itinéraire avec la recherche le long d'un itinéraire. Dans ce cas, Text Search (New) renvoie la durée et la distance du trajet jusqu'à chaque lieu dans la réponse, puis de chaque lieu jusqu'à la destination finale de l'itinéraire.
Pour utiliser Text Search (New) afin de calculer le résumé de l'itinéraire et d'effectuer une recherche le long d'un itinéraire :
-
Utilisez l'API Routes pour calculer un itinéraire qui renvoie une polyligne d'itinéraire dans la réponse.
-
Utilisez le paramètre
searchAlongRouteParameters.polyline.encodedPolylinepour transmettre la polyligne de l'itinéraire à Text Search (New) afin de biaiser les résultats de recherche en fonction de l'itinéraire. La réponse contient alors les lieux qui correspondent aux critères de recherche et qui se trouvent également à proximité de l'itinéraire spécifié. -
Incluez
routingSummariesdans le masque de champ pour que la réponse inclue le tableauroutingSummaries. Ce tableau contient la durée et la distance entre le point de départ de l'itinéraire et chaque lieu de la réponse.
APIs Explorer vous permet d'effectuer des requêtes en direct afin de vous familiariser avec l'API et ses options :
Par défaut, Text Search (New) effectue la recherche sur l'ensemble de l'itinéraire :
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'La réponse contient deux tableaux : le tableau places contenant les lieux correspondants et le tableau routingSummaries contenant la durée et la distance à parcourir pour chaque lieu :
{ "places": [ { "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA", "priceLevel": "PRICE_LEVEL_INEXPENSIVE", "displayName": { "text": "Vegan Mob - Vegan BBQ and Soul Food", "languageCode": "en" } }, { "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Enjoy Vegetarian", "languageCode": "en" } }, … ], "routingSummaries": [ { "legs": [ { "duration": "285s", "distanceMeters": 1616 }, { "duration": "2466s", "distanceMeters": 58147 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0" }, { "legs": [ { "duration": "696s", "distanceMeters": 4704 }, { "duration": "2787s", "distanceMeters": 58901 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0" }, … ] }
Pour chaque entrée du tableau legs, Text Search (New) renvoie une durée de trajet en deux étapes :
-
La première étape contient la durée et la distance du trajet entre le point de départ et le lieu. Dans cet exemple, la durée et la distance entre le point de départ et le premier lieu des résultats sont de 285 secondes et 1 616 mètres.
-
La deuxième étape contient la durée et la distance du trajet entre le lieu et la destination de l'itinéraire. Dans cet exemple, la durée et la distance sont de 2 466 secondes et 58 147 mètres.
Spécifier l'origine de l'itinéraire, le mode de transport et les modificateurs d'itinéraire
Vous pouvez modifier le calcul du récapitulatif de la recherche et de l'itinéraire en spécifiant l'origine de l'itinéraire, le mode de transport, les modificateurs d'itinéraire et les préférences d'itinéraire. Le mode de transport et les modificateurs d'itinéraire fonctionnent de la même manière que pour le calcul des récapitulatifs d'itinéraire sans spécifier d'itinéraire, comme indiqué dans la section Spécifier les options de transport.
Par défaut, la première étape de chaque résultat contient la distance entre le point de départ défini par la polyligne et chaque lieu. Toutefois, vous pouvez remplacer cette valeur par défaut en spécifiant explicitement une origine de routage dans la requête. Si ce paramètre est spécifié, la première étape de toutes les réponses indique les distances et la durée à partir du point de départ de l'itinéraire spécifié, en remplaçant le point de départ de la polyligne.
Dans l'exemple suivant, vous spécifiez une origine de routage en tant que coordonnées de San Mateo, en Californie, vous spécifiez d'éviter les péages et vous définissez le nombre de résultats sur 5 :
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"maxResultCount": 5,
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
},
"routingParameters": {
"origin": {
"latitude": 37.56617,
"longitude": -122.30870
},
"travelMode":"DRIVE",
"routeModifiers": {
"avoidTolls": true
}
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'L'image suivante montre une carte contenant la polyligne de l'itinéraire, le nouveau point de départ (repère bleu clair) et les lieux dans les résultats de recherche (repères verts). Notez que tous les résultats se trouvent le long de l'itinéraire, mais après San Mateo :
Essayer
APIs Explorer vous permet d'effectuer des exemples de requêtes afin de vous familiariser avec l'API et ses options.
Sélectionnez l'icône API api sur le côté droit de la page.
Vous pouvez également modifier les paramètres de la requête.
Sélectionnez le bouton Exécuter. Dans la boîte de dialogue, choisissez le compte que vous souhaitez utiliser pour effectuer la requête.
Dans le panneau APIs Explorer, sélectionnez l'icône Plein écran fullscreen pour agrandir la fenêtre APIs Explorer.