Menggabungkan ringkasan pemilihan rute dengan penelusuran di sepanjang rute
Anda dapat menggabungkan penghitungan ringkasan pemilihan rute dengan penelusuran di sepanjang rute. Dalam hal ini, Text Search (Baru) menampilkan durasi dan jarak perjalanan ke setiap tempat dalam respons, lalu dari setiap tempat ke tujuan akhir rute.
Untuk menggunakan Text Search (Baru) guna menghitung ringkasan pemilihan rute beserta penelusuran di sepanjang rute:
-
Gunakan Routes API untuk menghitung rute yang menampilkan polyline rute dalam respons.
-
Gunakan parameter
searchAlongRouteParameters.polyline.encodedPolyline
untuk meneruskan polyline rute ke Text Search (Baru) guna membiaskan hasil penelusuran ke rute. Respons kemudian berisi tempat yang cocok dengan kriteria penelusuran dan juga terletak di dekat rute yang ditentukan. -
Sertakan
routingSummaries
dalam mask kolom sehingga respons menyertakan arrayroutingSummaries
. Array ini berisi durasi dan jarak dari asal perutean ke setiap tempat dalam respons.
Secara default, Penelusuran Teks (Baru) melakukan penelusuran di sepanjang rute:
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'
Respons berisi dua array: array places
yang berisi tempat yang cocok, dan array routingSummaries
yang berisi durasi dan jarak perjalanan ke setiap tempat:
{ "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" }, … ] }
Untuk setiap entri dalam array legs
, Penelusuran Teks (Baru) menampilkan waktu perjalanan dua segmen:
-
Segmen pertama berisi durasi perjalanan dan jarak dari asal ke tempat. Dalam contoh ini, durasi dan jarak dari asal ke tempat pertama dalam hasil adalah 285 detik dan 1.616 meter.
-
Segmen kedua berisi durasi perjalanan dan jarak dari tempat ke tujuan rute. Dalam contoh ini, durasi dan jaraknya adalah 2.466 detik dan 58.147 meter.
Menentukan asal pemilihan rute, mode perjalanan, dan pengubah rute
Anda dapat mengubah penghitungan ringkasan penelusuran dan pemilihan rute dengan menentukan asal pemilihan rute, mode perjalanan, pengubah rute, dan preferensi pemilihan rute. Pengubah rute dan mode perjalanan berfungsi sama seperti untuk menghitung ringkasan pemilihan rute tanpa menentukan rute seperti yang ditunjukkan dalam topik Menentukan opsi perjalanan.
Secara default, bagian pertama dari setiap hasil berisi jarak dari asal yang ditentukan oleh polyline ke setiap tempat. Namun, Anda dapat mengganti default tersebut dengan menentukan asal pemilihan rute secara eksplisit dalam permintaan. Jika ditentukan, segmen pertama dari semua respons akan menentukan jarak dan durasi dari asal pemilihan rute yang ditentukan, yang akan mengganti asal dari polyline.
Pada contoh berikutnya, Anda menentukan asal pemilihan rute sebagai koordinat San Mateo, CA, menentukan untuk menghindari tol, dan menetapkan jumlah hasil ke 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'
Gambar berikut menampilkan peta yang berisi polyline rute, asal baru (pin biru muda), dan tempat di hasil penelusuran (pin hijau). Perhatikan bahwa semua hasil berada di sepanjang rute, tetapi melewati San Mateo: