Menyesuaikan preferensi pemilihan rute

Penghitungan rute (termasuk pengalihan rute) menampilkan rute yang membutuhkan waktu navigasi 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 terpendek mutlak, karena opsi tersebut mungkin merupakan alternatif yang buruk. Misalnya, jika rute terpendek mutlak adalah 10 km dan membutuhkan waktu 50 menit untuk dilalui, dan rute lain adalah 15 km, tetapi hanya membutuhkan waktu 20 menit untuk dilalui, pilihan kedua adalah yang optimal, karena menghabiskan waktu 30 menit untuk mengurangi lima km bukanlah pertukaran yang baik.

Setelah Anda menetapkan strategi perutean untuk perjalanan, strategi tersebut tidak akan berubah hingga perjalanan selesai. Untuk mengubah strategi perutean untuk perjalanan yang sudah ada, Anda harus menghapus tujuan dan menyetel ulang dengan strategi perutean baru.

Mendapatkan detail rute

Untuk menentukan strategi rute mana yang merupakan pilihan optimal untuk titik jalan tertentu, panggil getRouteInfoForDestination() untuk mendapatkan detail rute terbaik default dan rute terpendek absolut. 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 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 perutean

Anda dapat mengonfigurasi strategi pemilihan rute menggunakan GMSNavigationRoutingOptions, dan menetapkan routingStrategy saat memanggil setDestinations().

routingStrategy mengambil salah satu nilai enumerasi berikut:

Nilai EnumerasiDeskripsi
GMSNavigationRoutingStrategyDefaultBest Menempatkan rute berdasarkan model biaya default Navigation SDK. Ini adalah strategi pemilihan rute default.
GMSNavigationRoutingStrategyShorter Mengurutkan rute berdasarkan jarak. Rute dengan peringkat tertinggi adalah rute terpendek dari rute yang ditampilkan.

Contoh

Contoh kode berikut menunjukkan cara menyetel 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 for iOS mengecualikan rute yang mencakup kapal feri. Jika ingin menyertakan opsi feri sebagai bagian dari rute, Anda dapat menyesuaikan preferensi perutean ini untuk menampilkan segmen perjalanan ke feri dengan menyetel avoidsFerries ke false.

Contoh

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

Format info rute

Dalam strategi perutean rute yang lebih pendek, balon di sepanjang rute menampilkan detail jarak. Namun, Anda dapat menggunakan info perkiraan waktu tiba sebagai gantinya.

Mengonfigurasi format info rute

Anda dapat mengubah format keterangan rute dengan menyetel routeCalloutFormat di GMSMapView. routeCalloutFormat menggunakan salah satu nilai enumerasi berikut:

Nilai EnumerasiDeskripsi
GMSNavigationRouteCalloutFormatDefault Menampilkan waktu yang tersisa saat menggunakan strategi perutean rute terbaik default. Menampilkan jarak yang tersisa saat menggunakan strategi perutean rute yang lebih pendek
GMSNavigationRouteCalloutFormatTime Menampilkan sisa waktu.
GMSNavigationRouteCalloutFormatDistance Menampilkan jarak yang tersisa.

Contoh

Contoh kode berikut menunjukkan cara mengonfigurasi format balon rute.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;