Secara default, API memperlakukan titik jalan perantara sebagai perhentian di sepanjang rute.
Namun, Anda dapat mengonfigurasi titik jalan perantara sebagai titik jalan via
pass-through yang dilewati kendaraan tanpa berhenti.
Gunakan titik jalan teruskan untuk membentuk atau menyesuaikan rute tertentu. Daripada membagi rute menjadi perhentian penjemputan atau pengantaran yang terpisah, titik jalan lintas memaksa mesin perutean untuk melewati lokasi tertentu dalam perjalanan ke tujuan—misalnya, untuk mengikuti segmen jalan yang disukai atau menghindari bahaya yang diketahui.
Rute yang berisi asal, satu atau beberapa titik jalan perantara yang dilalui, dan tujuan hanya berisi satu segmen rute yang menghubungkan asal langsung ke tujuan.
Untuk mengonfigurasi titik jalan perantara sebagai titik jalan teruskan, tetapkan
properti via titik jalan ke true di resource
Waypoint REST atau pesan
Waypoint gRPC.
Meskipun Routes API menerima alamat, ID Tempat, dan koordinat
lintang dan bujur, lintang dan bujur, atau latLng, koordinat memberikan
penyesuaian rute yang paling presisi untuk titik jalan yang dilalui.
Properti via paling efektif saat Anda membuat rute sebagai respons terhadap
penarikan titik jalan di peta. Dengan pendekatan ini, Anda dapat melihat tampilan rute akhir secara real time dan membantu Anda menempatkan titik jalan di lokasi yang dapat diakses.
Contoh: Menetapkan titik jalan terus
Contoh berikut menunjukkan cara menyetel "via": true pada titik jalan
menengah dalam permintaan POST computeRoutes yang lengkap:
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "via": true } ], "travelMode": "DRIVE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Menggunakan alamat atau ID Tempat untuk titik jalan terus lewati
Meskipun kami merekomendasikan koordinat lintang dan bujur untuk perutean terus-terusan yang presisi, Anda juga dapat menentukan titik jalan perantara menggunakan string alamat atau ID Tempat.
Saat Anda menggunakan alamat atau ID Tempat untuk titik jalan terus, API menginterpolasi dan menyambungkan lokasi ke jalan terdekat yang dapat dilalui. Proses penyesuaian jalan ini terkadang dapat menyebabkan variasi atau ketidakakuratan rute dibandingkan dengan koordinat yang tepat.
Jika Anda menentukan titik jalan menggunakan string alamat atau Kode Plus, API akan
melakukan geokode lokasi dan menampilkan ID Tempat yang cocok dalam array
geocodingResults.intermediates
dalam respons.
Untuk setiap elemen dalam array intermediates, gunakan properti intermediateWaypointRequestIndex untuk menentukan titik jalan perantara mana dalam permintaan yang sesuai dengan ID Tempat dalam respons.
Contoh: Meminta ID Tempat untuk titik jalan terus
Contoh berikut menunjukkan permintaan dengan tiga titik jalan perantara
pass-through, yang masing-masing menentukan "via": true:
curl -X POST -d '{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "24 Willie Mays Plaza, San Francisco, CA 94107" }, "intermediates": [ { "address": "450 Serra Mall, Stanford, CA 94305, USA", "via": true }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } }, "via": true }, { "address": "1836 El Camino Real, Redwood City, CA 94063", "via": true } ], "travelMode": "DRIVE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Respons mencakup array geocodingResults yang berisi ID Tempat untuk
asal, tujuan, dan dua titik jalan perantara yang Anda tentukan
berdasarkan alamat pada indeks permintaan 0 dan indeks 2. API menghilangkan titik jalan perantara
pada indeks 1 dari geocodingResults karena Anda menentukannya menggunakan
koordinat lintang dan bujur:
{ "routes": [ { "distanceMeters": 54200, "duration": "2400s", "legs": [ { "distanceMeters": 54200, "duration": "2400s", "startLocation": { "latLng": { "latitude": 37.4220, "longitude": -122.0841 } }, "endLocation": { "latLng": { "latitude": 37.7786, "longitude": -122.3893 } } } ] } ], "geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, "destination": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY" }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 0, "type": [ "street_address" ], "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y" }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 2, "type": [ "premise" ], "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0" } ] } }