Secara default, titik jalan perantara digunakan untuk perhentian dalam pengangkutan dan penurunan, tetapi Anda juga dapat menentukan bahwa titik jalan perantara dimaksudkan hanya untuk melewatinya.
Rute yang berisi titik jalan asal, titik jalan perantara
lintas, dan titik jalan tujuan hanya berisi satu segmen rute yang
menghubungkan tempat asal dan tujuan, saat melewati titik jalan perantara
(disebut titik jalan via
).
Konfigurasi 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 yang menarik titik jalan pada peta. Dengan begitu, pengguna dapat melihat tampilan rute akhir secara real time dan membantu memastikan titik jalan ditempatkan di lokasi yang dapat diakses oleh Compute Routes.
Contoh berikut menunjukkan cara menandai titik jalan perantara sebagai titik jalan pass-through.
{ "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 code, API akan mencoba menemukan
lokasi paling relevan yang memiliki ID tempat yang sesuai. Array geocodingResults.intermediates
dalam hasil berisi ID tempat yang sesuai dengan lokasi titik jalan, beserta data tambahan tentang lokasi tersebut.
Untuk setiap elemen array intermediates
, gunakan properti intermediateWaypointRequestIndex
untuk menentukan titik jalan perantara dalam permintaan yang sesuai dengan ID tempat dalam respons.
Contoh:
Anda menetapkan tiga titik jalan perantara dalam permintaan. Dua dari titik jalan ini ditetapkan oleh string alamat dan satu titik jalan berdasarkan koordinat lintang/bujur.
Anda menyertakan
geocodingResults
dalam mask kolom respons guna menentukan untuk menampilkan 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'
Respons mencakup array geocodingResults
yang berisi ID tempat untuk asal, tujuan, dan untuk dua dari tiga titik jalan. Ini adalah
titik jalan pada indeks 0 dan 2 permintaan. Karena titik jalan pada indeks 1 permintaan ditetapkan menggunakan koordinat garis lintang/bujur, titik jalan tersebut akan 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" } ] } }