Secara {i>default<i}, titik jalan perantara digunakan untuk perhentian pengambilan dan berpaling, tetapi Anda juga bisa menentukan bahwa titik jalan perantara dimaksudkan hanya untuk dilewati.
Rute yang berisi titik jalan asal, perantara pass-through
titik jalan, dan titik jalan tujuan hanya
berisi satu segmen rute yang
menghubungkan tempat asal dan tujuan, sembari melewati perantara
(disebut titik jalan via
).
Mengonfigurasi titik jalan perantara menjadi titik jalan pass-through dengan
menetapkan properti via
titik jalan ke true
menggunakan
Waypoint (REST) atau
Waypoint (gRPC).
Properti via
paling efektif saat membuat rute sebagai respons terhadap
pengguna menyeret titik jalan pada peta. Hal tersebut memungkinkan pengguna
untuk melihat bagaimana
rute akhir mungkin terlihat secara {i>real-time<i} dan
membantu memastikan titik jalan ditempatkan
di lokasi yang dapat diakses oleh Compute Routes.
Contoh berikut menunjukkan cara menandai titik jalan tengah sebagai titik jalan lewat.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Mengakses ID tempat untuk titik jalan perantara
Jika Anda menentukan lokasi asal, tujuan, atau titik jalan perantara
sebagai string alamat atau sebagai Plus Codes, API akan mencoba menemukan
lokasi yang paling relevan yang memiliki ID tempat yang sesuai. Tujuan
geocodingResults.intermediates
di hasilnya berisi ID tempat yang sesuai dengan lokasi
titik jalan, beserta data tambahan tentang lokasi.
Untuk setiap elemen array intermediates
, gunakan properti intermediateWaypointRequestIndex
untuk menentukan titik jalan tengah dalam permintaan yang sesuai dengan ID tempat dalam respons.
Contoh:
Anda menetapkan tiga titik jalan perantara dalam permintaan. Dua titik jalan ini ditentukan oleh string alamat dan satu titik jalan ditentukan oleh koordinat lintang/bujur.
Anda menyertakan
geocodingResults
dalam mask kolom respons untuk menentukan tampilkan arraygeocodingResults
dalam hasil.
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" }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } }, { "address": "1836 El Camino Real, Redwood City, CA 94063" } ], "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'
Responsnya mencakup array geocodingResults
yang berisi ID tempat untuk
tempat asal, tujuan, dan dua
dari tiga titik jalan. Berikut adalah
titik jalan pada indeks 0 dan 2 dari permintaan. Karena titik jalan pada indeks 1 dari
permintaan ditetapkan dengan menggunakan koordinat lintang/bujur,
dihilangkan dari array geocodingResults
dalam respons.
{ "routes": [{...}], "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" } ] } }