Perhitungan rute (termasuk perubahan rute) menampilkan rute yang memerlukan waktu paling sedikit untuk dinavigasi sebagai rute terbaik default. Namun, Anda dapat mengubah strategi pemilihan rute sehingga alternatif rute yang lebih pendek ditampilkan.
Istilah lebih pendek berarti rute yang terpendek di antara rute yang optimal berdasarkan model biaya default kami. Rute yang lebih pendek mungkin bukan rute terpendek absolut, karena opsi tersebut mungkin merupakan alternatif yang buruk. Misalnya, jika rute terpendek absolut adalah 10 km dan memerlukan waktu 50 menit untuk dinavigasi dan rute lainnya berjarak 15 km, tetapi hanya membutuhkan waktu 20 menit untuk bernavigasi, pilihan kedua akan optimal, karena menghabiskan 30 menit untuk mengurangi lima km bukanlah kompromi yang baik.
Setelah Anda menetapkan strategi pemilihan rute untuk sebuah perjalanan, strategi tersebut tidak akan berubah hingga perjalanan tersebut selesai. Untuk mengubah strategi pemilihan rute untuk perjalanan yang ada, Anda harus menghapus tujuan dan meresetnya lagi dengan strategi pemilihan rute yang baru.
Mendapatkan detail rute
Untuk menentukan strategi rute yang merupakan pilihan optimal untuk titik jalan tertentu, panggil getRouteInfoForDestination()
untuk mendapatkan detail rute untuk rute terbaik default dan rute yang lebih pendek absolut. Detailnya mencakup durasi dan
jarak ke titik jalan tujuan.
Detail ini berasal dari GMSNavigationRouteInfo
di callback.
Contoh
Contoh kode berikut menunjukkan cara mendapatkan detail rute untuk kedua strategi perutean.
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 menyetel routingStrategy
saat memanggil setDestinations()
.
routingStrategy
menggunakan salah satu nilai enumerasi berikut:
Nilai Enumerasi | Deskripsi |
---|---|
GMSNavigationRoutingStrategyDefaultBest | Menentukan peringkat rute menurut model biaya default Navigation SDK. Ini adalah strategi perutean default. |
GMSNavigationRoutingStrategyShorter | Menentukan peringkat rute menurut jarak. Rute dengan peringkat tertinggi adalah rute terpendek dari rute yang ditampilkan. |
Contoh
Contoh kode berikut menunjukkan cara menetapkan strategi perutean rute yang lebih pendek.
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 untuk iOS mengecualikan rute yang menyertakan feri. Jika memilih untuk menyertakan opsi feri sebagai bagian dari rute, Anda dapat menyesuaikan preferensi pemilihan rute ini untuk menampilkan perjalanan ke segmen feri dengan menetapkan avoidsFerries
ke false
.
Contoh
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format info rute
Pada strategi pemilihan rute rute yang lebih pendek, info di sepanjang detail jarak menampilkan rute. Namun, Anda dapat menggunakan info PWT sebagai gantinya.
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 yang tersisa saat menggunakan strategi pemilihan rute rute terbaik default. Menampilkan jarak yang tersisa saat menggunakan strategi perutean rute yang lebih pendek |
GMSNavigationRouteCalloutFormatTime | Menampilkan waktu yang tersisa. |
GMSNavigationRouteCalloutFormatDistance | DMenampilkan jarak yang tersisa. |
Contoh
Contoh kode berikut menunjukkan cara mengonfigurasi format info rute.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;