Secara default, Routes API menampilkan rute default, yang biasanya merupakan rute tercepat dari titik asal ke tujuan. Saat Anda meminta rute alternatif, API akan menampilkan hingga tiga rute beserta rute default. Kemudian, pelanggan Anda dapat memilih rute yang paling sesuai dengan kebutuhan mereka.
Pertimbangan saat meminta rute alternatif
Untuk meminta rute alternatif, perhatikan pertimbangan berikut:
Anda hanya dapat meminta rute alternatif untuk rute tanpa titik jalan perantara. Meminta rute alternatif saat rute menentukan titik jalan perantara tidak menyebabkan error. Namun, tidak ada rute alternatif yang ditampilkan.
Respons berisi maksimal tiga rute alternatif. Namun, terkadang tidak ada rute alternatif yang tersedia sehingga respons hanya berisi rute default.
Karena pemrosesan tambahan yang diperlukan untuk menghitung rute alternatif, meminta rute alternatif dapat meningkatkan waktu respons API.
Contoh permintaan rute alternatif
Tetapkan computeAlternativeRoutes
ke true
untuk meminta rute alternatif. Contoh
berikut menunjukkan cara meminta rute alternatif dalam permintaan
metode computeRoutes (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Dalam contoh ini, Anda menentukan mask kolom sehingga respons hanya berisi properti
duration
, distanceMeters,
, dan routeLabels
untuk setiap rute. Pelanggan Anda kemudian dapat menggunakan informasi tersebut untuk memilih rute yang akan diambil. Untuk informasi
selengkapnya, lihat Memilih informasi yang akan ditampilkan.
Contoh respons rute alternatif
Dalam respons, gunakan properti array routeLabels
untuk mengidentifikasi rute
jangkauan:
Untuk rute default, properti
routeLabels
berisiDEFAULT_ROUTE
.Untuk rute alternatif, properti
routeLabels
berisiDEFAULT_ROUTE_ALTERNATE
.
Dalam contoh ini, respons berisi rute default dan dua rute alternatif. Perhatikan bahwa nilai properti duration
dan distanceMeters
berbeda untuk setiap rute:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Menyertakan polyline dalam respons
Untuk mempermudah pengguna memilih rute, tambahkan polyline untuk setiap rute ke respons. Anda kemudian dapat menampilkan setiap polyline di peta.
Untuk menambahkan polyline, sertakan routes.polyline
dalam mask kolom:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Respons kemudian berisi polyline untuk setiap rute:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }