Penghitungan rute (termasuk pemilihan rute ulang) menampilkan rute yang memerlukan waktu tempuh paling singkat sebagai rute terbaik default. Namun, Anda dapat mengubah strategi pemilihan rute sehingga alternatif rute yang lebih pendek akan ditampilkan.
Istilah lebih pendek berarti rute yang paling pendek di antara rute optimal berdasarkan model biaya default kami. Rute yang lebih pendek mungkin bukan rute absolut terpendek, karena opsi tersebut mungkin merupakan alternatif yang buruk. Misalnya, jika rute absolut terpendek adalah 10 km dan memerlukan waktu tempuh 50 menit, sedangkan rute lain adalah 15 km, tetapi hanya memerlukan waktu tempuh 20 menit, pilihan kedua adalah yang optimal, karena menghabiskan waktu 30 menit untuk mengurangi jarak lima km bukanlah pilihan yang baik.
Setelah Anda menetapkan strategi pemilihan rute untuk perjalanan, strategi tersebut tidak akan berubah hingga perjalanan selesai. Untuk mengubah strategi pemilihan rute untuk perjalanan yang ada, Anda harus menghapus tujuan dan menyetelnya kembali dengan strategi pemilihan rute yang baru.
Mendapatkan detail rute
Untuk menentukan strategi rute mana yang merupakan pilihan optimal untuk titik jalan tertentu, panggil getRouteInfoForDestination() untuk mendapatkan detail rute untuk rute terbaik default dan rute absolut terpendek. Detail mencakup durasi dan jarak ke titik jalan tujuan.
Detail ini berasal dari
GMSNavigationRouteInfo
dalam callback.
Contoh
Contoh kode berikut menunjukkan cara mendapatkan detail rute untuk masing-masing dari dua strategi pemilihan rute.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
Menetapkan strategi pemilihan rute
Anda dapat mengonfigurasi strategi pemilihan rute menggunakan GMSNavigationRoutingOptions, dan menetapkan routingStrategy saat memanggil setDestinations().
routingStrategy menggunakan salah satu nilai enumerasi berikut:
| Nilai Enumerasi | Deskripsi |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest | Menentukan peringkat rute berdasarkan model biaya default Navigation SDK. Ini adalah strategi pemilihan rute default. |
| GMSNavigationRoutingStrategyShorter | Menentukan peringkat rute berdasarkan jarak. Rute dengan peringkat tertinggi adalah rute terpendek dari rute yang ditampilkan. |
Contoh
Contoh kode berikut menunjukkan cara menetapkan strategi pemilihan rute terpendek.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
Rute yang mencakup kapal feri
Secara default, Navigation SDK for iOS tidak menyertakan rute yang mencakup kapal feri. Jika Anda ingin menyertakan opsi kapal feri sebagai bagian dari rute, Anda dapat menyesuaikan preferensi pemilihan rute ini untuk menampilkan perjalanan ke segmen kapal feri dengan menetapkan avoidsFerries ke false.
Contoh
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format info rute
Dalam strategi pemilihan rute terpendek, info di sepanjang rute menampilkan detail jarak. Namun, Anda dapat menggunakan info ETA.
Mengonfigurasi format info rute
Anda dapat mengubah format info rute dengan menetapkan routeCalloutFormat di GMSMapView. routeCalloutFormat menggunakan salah satu nilai enumerasi berikut:
| Nilai Enumerasi | Deskripsi |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | Menampilkan waktu tersisa saat menggunakan strategi pemilihan rute terbaik default strategy. Menampilkan jarak tersisa saat menggunakan strategi pemilihan rute terpendek |
| GMSNavigationRouteCalloutFormatTime | Menampilkan waktu tersisa. |
| GMSNavigationRouteCalloutFormatDistance | Menampilkan jarak tersisa. |
Contoh
Contoh kode berikut menunjukkan cara mengonfigurasi format info rute.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;