Combinare i riepiloghi dei percorsi con la ricerca lungo il percorso
Puoi combinare i calcoli del riepilogo del percorso con la ricerca lungo un percorso. In questo caso, la ricerca di testo (nuova) restituisce la durata e la distanza del viaggio per ogni luogo nella risposta e poi da ogni luogo alla destinazione finale del percorso.
Per utilizzare la ricerca di testo (nuova) per calcolare il riepilogo del percorso e la ricerca lungo un percorso:
-
Utilizza l'API Routes per calcolare un percorso che restituisce una polilinea del percorso nella risposta.
-
Utilizza il parametro
searchAlongRouteParameters.polyline.encodedPolyline
per passare il polilinea del percorso alla ricerca di testo (nuova) per influenzare i risultati di ricerca in base al percorso. La risposta contiene quindi i luoghi che corrispondono ai criteri di ricerca e si trovano anche vicino al percorso specificato. -
Includi
routingSummaries
nella maschera di campo in modo che la risposta includa l'arrayroutingSummaries
. Questo array contiene la durata e la distanza dall'origine del percorso a ogni luogo nella risposta.
L'API Explorer ti consente di effettuare richieste in tempo reale per consentirti di acquisire familiarità con l'API e le relative opzioni:
Prova!Per impostazione predefinita, la ricerca di testo (nuova) esegue la ricerca nell'intero percorso:
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 risposta contiene due array: l'array places
contenente i luoghi corrispondenti e l'array routingSummaries
contenente la durata e la distanza da percorrere per raggiungere ogni luogo:
{ "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" }, … ] }
Per ogni voce nell'array legs
, la ricerca di testo (nuova) restituisce un tempo di percorrenza a due tratti:
-
La prima tratta contiene la durata del viaggio e la distanza dall'origine al luogo. In questo esempio, la durata e la distanza dall'origine al primo posto nei risultati sono 285 secondi e 1616 metri.
-
La seconda tratta contiene la durata del viaggio e la distanza dal luogo alla destinazione del percorso. In questo esempio, la durata e la distanza sono 2466 secondi e 58147 metri.
Specifica l'origine del percorso, la modalità di viaggio e i modificatori del percorso
Puoi modificare il calcolo del riepilogo della ricerca e del calcolo del percorso specificando l'origine del percorso, la modalità di viaggio, i modificatori del percorso e le preferenze di calcolo del percorso. I modi di viaggio e i modificatori di percorso funzionano come per il calcolo dei riepiloghi di routing senza specificare un percorso, come mostrato nell'argomento Specificare le opzioni di viaggio.
Per impostazione predefinita, la prima tratta di ogni risultato contiene la distanza dall'origine definita dal polilinea a ogni luogo. Tuttavia, puoi sostituire questo valore predefinito specificando esplicitamente un'origine di routing nella richiesta. Se specificato, il primo tratto di tutte le risposte specifica le distanze e la durata dall'origine del percorso specificata, sostituendo l'origine dal polilinea.
Nell'esempio seguente, specifichi un'origine del percorso come le coordinate di San Mateo, in California, specifichi di evitare i pedaggi e imposti il numero di risultati su 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'immagine seguente mostra una mappa contenente il polilinea del percorso, la nuova origine (segnaposto azzurro) e i luoghi nei risultati di ricerca (segnaposto verdi). Nota come tutti i risultati si trovino lungo il percorso, ma dopo San Mateo: