Terkadang, Anda mungkin ingin merencanakan rute yang disediakan aplikasi Anda kepada pengguna. Menggunakan token rute dari Routes API, Routes Preferred API, atau Route Optimization API dapat membantu Anda menentukan dua hal untuk rute yang direncanakan:
Polyline untuk rute
Tujuan rute Anda
Misalnya, berikut beberapa contoh tujuan pemilihan rute yang mungkin Anda miliki:
Meminimalkan waktu pengiriman: Bisnis pengiriman makanan mungkin ingin meminimalkan waktu yang diperlukan untuk mengirimkan makanan.
Meminimalkan waktu perjalanan atau konsumsi bahan bakar: Bisnis logistik mungkin ingin meningkatkan efisiensi pengemudi dan mengurangi biaya bahan bakar.
Meminimalkan waktu ke tujuan: Operasi pengiriman layanan mungkin ingin meminimalkan waktu yang diperlukan untuk mengarahkan operator ke permintaan tugas.
Menurunkan biaya dan meningkatkan keselamatan: Bisnis transportasi online mungkin ingin menemukan rute yang lebih murah bagi penumpang dan menghindari area tertentu karena alasan keselamatan.
Untuk informasi selengkapnya tentang merencanakan rute menggunakan token rute, lihat Mendapatkan token rute di Routes API dan Polyline Transisi dan Token Rute di Route Optimization API.
Alasan menggunakan token rute untuk tujuan rute
Dengan token rute dari Routes API, Routes Preferred API, atau Route Optimization API, Anda memiliki kontrol lebih besar atas rute yang disediakan:
Rencanakan rute terlebih dahulu untuk digunakan Navigation SDK.
Pilih rute terbaik untuk digunakan Navigation SDK. Jika Anda meminta token rute saat membuat rute di Routes API, Anda akan mendapatkan token rute untuk setiap rute yang dibuat. Kemudian, Anda dapat memilih token untuk rute yang ingin digunakan saat meneruskannya ke Navigation SDK.
Perkirakan harga di awal, termasuk perkiraan untuk PWT dan jarak. Meskipun biaya dan waktu sebenarnya mungkin bervariasi, estimasi ini mengurangi kesenjangan antara biaya rute yang diharapkan dan biaya rute sebenarnya.
Tentukan tujuan rute yang lebih lanjut, seperti rute ramah lingkungan atau rute terpendek.
Cara kerja token rute
Anda dapat menggunakan Routes API, Routes Preferred API, atau Route Optimization API untuk merencanakan rute menggunakan tujuan rute. Anda dapat meneruskan token rute yang ditampilkan dari salah satu API ini ke Navigation SDK untuk memandu cara merutekan kendaraan Anda.
Berikut yang terjadi saat Anda meminta dan menggunakan token rute:
Routes API, Routes Preferred API, atau Route Optimization API menampilkan token rute terenkripsi yang mencakup polyline rute dan tujuan rute.
Anda meneruskan token rute ke Navigation SDK.
Navigation SDK memulai navigasi pada rute yang Anda rencanakan, meskipun rute yang lebih cepat tersedia.
Selama perjalanan, jika kondisi lalu lintas atau jalan berubah, atau jika kendaraan keluar dari rute yang direncanakan, Navigation SDK akan menghitung rute baru yang mengikuti tujuan rute dan opsi pemilihan rute yang ditetapkan dalam token rute Anda.
Proses ini memaksimalkan seberapa dekat rute sebenarnya dengan rute yang Anda rencanakan.
Alasan rute yang direncanakan mungkin tidak diikuti secara persis
Navigasi dimulai pada rute yang direncanakan, tetapi rute sebenarnya dapat berbeda dari rute tersebut dalam situasi seperti berikut:
- Kendaraan memulai perjalanan dari titik awal yang direncanakan.
- Kondisi lalu lintas atau jalan berubah selama perjalanan.
- Kendaraan keluar dari rute yang direncanakan.
Perbedaan ini dapat memengaruhi jarak, perkiraan waktu tiba, dan kualitas perjalanan penting lainnya yang Anda rencanakan.
Merencanakan rute menggunakan token rute
Anda dapat merencanakan rute dengan membuat token rute, lalu meneruskannya ke Navigation SDK, seperti yang dijelaskan dalam langkah-langkah berikut:
Langkah 1: Buat token rute menggunakan Routes API, Routes Preferred API, atau Route Optimization API
Minta token rute dengan salah satu metode berikut:
Routes API:
computeRoutes. Untuk mengetahui informasi selengkapnya tentang cara meminta token rute di Routes API, lihat Menghitung rute dan Mendapatkan token rute.Routes Preferred API:
computeCustomRoutes. Untuk informasi selengkapnya tentang cara meminta token rute di Routes Preferred API, lihat Merencanakan rute.Route Optimization API:
optimizeToursataubatchOptimizeTours. Untuk mengetahui informasi selengkapnya tentang cara meminta token rute di Route Optimization API, lihat Polyline Transisi dan Token Rute.
Siapkan permintaan Routes API atau Routes Preferred API Anda untuk memenuhi persyaratan penggunaan token rute:
- Tetapkan
travelModekeDRIVEatauTWO_WHEELER. - Tetapkan
routingPreferencekeTRAFFIC_AWAREatauTRAFFIC_AWARE_OPTIMAL. - Jangan gunakan titik jalan
Via.
- Tetapkan
Langkah 2: Teruskan token rute ke Navigation SDK
Menyimpan token rute: Di Navigation SDK, siapkan string untuk menyimpan token rute. Contoh:
let routeToken = "route token returned by Routes API"Contoh token rute yang ditampilkan:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }Teruskan token rute ke Navigation SDK menggunakan
mapView.navigator.setDestinations. Tentukan titik jalan tujuan yang sama dengan yang Anda gunakan saat membuat token rute:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})Metode
setDestinationsmeneruskan status permintaan ke callback-nya. Jika menemukan rute dari lokasi pengguna ke tujuan yang diberikan, statusnya adalah.OK(GMSRouteStatusOK).
Skenario multi-perhentian
Anda dapat mengonfigurasi maksimum 25 titik jalan.
Metode setDestinations tidak mendukung perjalanan dengan beberapa perhentian. Gunakan
continueToNextDestinationWithCompletion()
untuk memajukan titik jalan ke leg perjalanan berikutnya.
Contoh
Contoh kode berikut menunjukkan cara mengambil rute yang direncanakan.
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:location title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";
[mapView.navigator setDestinations:@[waypoint1, waypoint2]
routeToken:routeToken
callback:^(GMSRouteStatus routeStatus){...}];
Cara token rute dan Navigation SDK berinteraksi
Berikut cara Navigation SDK menangani rute yang Anda rencanakan:
Mengganti tujuan yang ditetapkan sebelumnya.
Menggunakan lokasi awal kendaraan.
Menyesuaikan dengan kondisi jalan dan lalu lintas. Lihat Alasan rute yang direncanakan mungkin tidak diikuti secara persis.
Menggunakan opsi pemilihan rute yang ditetapkan di token rute Anda, bukan setelan berikut di aplikasi Anda, termasuk saat menghitung rute baru selama perjalanan:
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction- Mode perjalanan yang ditetapkan di aplikasi Anda
Mengikuti setelan ini saat menghitung atau menyesuaikan rute:
Tujuan rute dari token rute Anda, seperti rute hemat energi atau rute terpendek. Jika harus menyesuaikan rute, Navigation SDK akan menggunakan tujuan rute yang Anda tentukan saat meminta token rute.
Opsi terkait titik jalan dari aplikasi Anda, seperti preferensi sisi jalan. Gunakan opsi terkait titik jalan yang sama dengan yang Anda tentukan saat meminta token rute.