Secara default, metode Compute Routes
Routes API
menghitung rute melalui beberapa perhentian, yang disebut titik jalan persinggahan, dalam
urutan yang Anda berikan.
Anda dapat meminta Routes API mengoptimalkan rute yang disediakan dengan menyusun ulang perhentian dalam urutan yang lebih efisien. Pengoptimalan titik jalan mengoptimalkan waktu perjalanan, tetapi juga mempertimbangkan faktor lain seperti jarak dan jumlah belokan saat memutuskan rute yang paling efisien.
Untuk mengoptimalkan titik jalan
Pastikan tidak ada titik jalan di rute yang menetapkan
via
ketrue
, misalnya:{"address": "Clare,SA", "via": true}
. Untuk informasi selengkapnya tentang titik jalan perantara, lihat Menentukan titik jalan perantara.Pastikan
routing_preference
tidak disetel keTRAFFIC_AWARE_OPTIMAL
.Tetapkan
optimize_waypoint_order
ketrue
. Contoh:"optimizeWaypointOrder": "true",
Tentukan kolom
routes.optimizedIntermediateWaypointIndex
dalam mask kolom:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Memahami cara urutan titik jalan dioptimalkan
Berikut cara Routes API mengoptimalkan urutan titik jalan dalam rute:
Mengindeks titik jalan secara otomatis berdasarkan urutan yang Anda berikan dalam permintaan, dimulai dengan 0.
Mengoptimalkan urutan titik jalan menggunakan nomor indeks yang ditetapkan ke titik jalan dalam permintaan.
Menampilkan urutan titik jalan yang dioptimalkan dalam objek
routes
, di kolomwaypoint_order
, di bagianroutes.optimizedIntermediateWaypointIndex
.
Contoh
Permintaan ini meminta pengoptimalan untuk rute dari Adelaide, Australia Selatan, ke setiap wilayah penghasil wine utama Australia Selatan, lalu kembali ke Adelaide.
curl -X POST -H 'content-type: application/json' -d ' { "origin": { "address": "Adelaide,SA" }, "destination": { "address": "Adelaide,SA" }, "intermediates": [ {"address": "Barossa+Valley,SA"}, {"address": "Clare,SA"}, {"address": "Coonawarra,SA"}, {"address": "McLaren+Vale,SA"} ], "travelMode": "DRIVE", "optimizeWaypointOrder": "true" }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Routes API mengindeks titik jalan perantara yang diberikan dalam permintaan, dimulai dari 0. Contoh:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Coonawarrav,SA"}, 3 {"address": "McLaren+Vale,SA"}
Dengan menggunakan nomor indeks untuk empat titik jalan yang diberikan dalam permintaan, layanan tersebut akan menampilkan urutan yang dioptimalkan:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]