Untuk siapa panduan ini: Baca panduan ini jika Anda adalah developer seluler yang bertanggung jawab untuk membuat pengalaman navigasi belokan demi belokan bagi pengemudi truk, bus, atau kendaraan komersial besar lainnya.
Apa yang dibahas dalam panduan ini: Panduan ini menjelaskan cara mengambil rute khusus truk yang dibuat oleh Routes API atau Route Optimization API dan menggunakannya untuk mendukung sesi navigasi belokan demi belokan dengan Navigation SDK for Android.
Yang akan Anda pelajari
Anda akan mempelajari cara melakukan tugas berikut:
- Menggunakan
routeTokenuntuk menghubungkan perencanaan rute backend dengan pengalaman navigasi dalam aplikasi. - Mengonfigurasi Navigation SDK untuk menggunakan rute truk yang telah direncanakan sebelumnya.
- Memahami cara pembatasan khusus truk muncul kepada pengemudi di UI navigasi.
Prasyarat
Sebelum memulai, pastikan Anda memenuhi persyaratan berikut:
1. Meminta akses untuk project Anda
Perutean kendaraan besar tersedia untuk sekelompok pelanggan tertentu. Untuk menyatakan minat dan meminta akses untuk project Google Cloud Anda, isi formulir kontak. Perwakilan Google akan menghubungi Anda untuk menginformasikan langkah berikutnya.
Setelah Google memberikan akses, pastikan project Google Cloud Anda disediakan untuk perutean kendaraan besar.
Jika organisasi Anda menggunakan project Google Cloud terpisah untuk API perutean backend dan Navigation SDK seluler, hubungi Google untuk menyediakan setiap project.
2. Menyiapkan pembuatan rute backend dan mendapatkan token rute
Sebelum memulai navigasi di perangkat, server backend Anda harus membuat rute truk dan mendapatkan routeToken menggunakan salah satu API berikut:
- Routes API: Direkomendasikan untuk menghitung rute truk tunggal antara asal dan tujuan. Untuk mengetahui petunjuk penyiapan, lihat Membuat rute kendaraan besar & perkiraan waktu tiba.
- Route Optimization API: Direkomendasikan untuk mengoptimalkan rute multi-perhentian di seluruh armada. Untuk mengetahui informasi selengkapnya, lihat panduan perutean kendaraan besar Route Optimization API.
Permintaan backend Anda harus menentukan travelMode: TRUCK beserta atribut fisik kendaraan (tinggi, lebar, panjang, berat, jumlah sumbu, dan kargo hazmat). API perutean menampilkan routeToken dalam responsnya, yang diteruskan oleh server backend ke aplikasi seluler Anda.
3. Memenuhi persyaratan sistem dan SDK minimum
Aplikasi Anda harus menggunakan Navigation SDK versi 5.2.0 atau yang lebih baru.Selain itu, project Anda harus memenuhi persyaratan penyiapan standar Navigation SDK.
Batasan dan panduan operasional
Sebelum memulai, perhatikan batasan dan panduan operasional berikut:
- Ketersediaan geografis: Perutean kendaraan besar tersedia di 48 negara bagian Amerika Serikat yang berdekatan (Ketersediaan Umum) dan Jepang (Eksperimental). Fitur ini tidak tersedia di Alaska, Hawaii, atau wilayah AS.
- Saran dan keselamatan pengemudi: Pengemudi tidak boleh hanya mengandalkan rute yang ditampilkan oleh Navigation SDK agar aman atau legal. Rute mungkin tidak sesuai untuk kendaraan dalam semua kondisi jalan, dan mengikutinya dapat membuat pengemudi terpapar bahaya seperti jarak bebas rendah atau jalan dengan batasan berat. Pengemudi harus selalu waspada dan mematuhi rambu jalan yang dipasang dan peraturan setempat.
- Rute upaya terbaik: Jika API perutean tidak dapat menemukan rute yang sepenuhnya
mematuhi batasan kendaraan, API tersebut akan menampilkan rute "upaya terbaik" yang
mungkin masih melintasi segmen yang dibatasi. Misalnya, Routes API menetapkan flag
routeRestrictionsPartiallyIgnoreddalam responsnya. Saat menavigasi rute ini, Navigation SDK akan menampilkan info rute untuk menandai batasan yang relevan. Rencanakan rute dengan cermat dalam kasus ini dan jangan gunakan rute yang ditandai sebagai satu sumber tepercaya untuk perencanaan atau navigasi. - Fitur yang tidak didukung: Perutean kendaraan besar tidak mendukung
fitur berikut:
- Harga tol truk
- Batas kecepatan khusus truk atau kendaraan berat
- Perutean untuk bahan berbahaya radioaktif
- Batas penggunaan: Permintaan yang dibuat ke Navigation SDK mengikuti batas penggunaan dan kuota standar. Untuk mengetahui informasi selengkapnya, lihat Penggunaan dan penagihan.
Menampilkan UI khusus truk (info rute)
Navigation SDK secara otomatis menampilkan peringatan visual, yang disebut info rute, di peta untuk memperingatkan pengemudi tentang batasan truk yang akan datang. Info muncul untuk batasan yang terjadi di sepanjang rute yang direncanakan, tetapi tidak ditampilkan di jalan terdekat lainnya.
Navigation SDK menyertakan info untuk batasan berikut:
| Batasan | Teks &ikon info | Kondisi untuk ditampilkan |
|---|---|---|
| Tinggi |
Kuning = peringatan, kendaraan Anda mendekati tinggi maksimum yang diizinkan
Merah = kendaraan Anda melebihi tinggi maksimum yang diizinkan |
Info kuning akan muncul saat tinggi kendaraan mendekati batasan.
Info merah akan muncul jika rute tidak sesuai dan melanggar batasan tinggi.
|
| Berat |
|
Info merah akan muncul saat berat kendaraan
melebihi batas jalan.
|
| Truk Dilarang |
|
Info merah akan muncul saat bepergian di segmen jalan
dengan batasan truk komersial.
|
| Barang Berbahaya |
|
Info merah akan muncul saat muatan hazmat kendaraan dilarang di segmen jalan.
|
Cara kerja token rute
routeToken adalah snapshot terenkripsi dari rute yang dibuat oleh backend perutean Google. Token ini merangkum geometri rute yang direncanakan serta dimensi fisik dan profil batasan kendaraan.
Alur kerja mengikuti langkah-langkah berikut:
- Meminta rute: Server backend Anda meminta rute truk dari Routes API (atau Route Optimization API).
- Menerima token: API perutean menghitung rute yang sesuai dan
menampilkan
routeTokenke server backend Anda. - Meneruskan token: Server backend Anda meneruskan
routeTokendan koordinat tujuan ke aplikasi seluler Anda. - Meneruskan ke SDK: Aplikasi seluler meneruskan
routeTokenke Navigation SDK. - Memulai panduan: Navigation SDK menangani semua aspek pengalaman belokan demi belokan, termasuk merender info rute dan menangani pengalihan rute dinamis sesuai dengan batasan kendaraan.
Penghitungan ulang dan pengalihan rute dinamis
Selama navigasi aktif, kondisi lalu lintas, penutupan jalan, atau belokan yang terlewat mungkin menyebabkan kendaraan menyimpang dari rute yang direncanakan.
Saat pengalihan rute terjadi:
- Navigation SDK secara otomatis menghitung ulang rute ke tujuan.
- SDK mempertahankan atribut dan dimensi kendaraan yang dienkode dalam
routeTokenasli. - Rute yang baru dihitung ulang menghindari jarak bebas rendah, jembatan dengan batasan berat, dan jalan yang dilarang untuk truk komersial.
Implementasi: Memulai perjalanan khusus truk
Ikuti langkah-langkah berikut untuk menginisialisasi dan memulai navigasi belokan demi belokan dengan token rute kendaraan besar.
Langkah 1: Mendapatkan token rute dari backend Anda
Aplikasi seluler Anda menerima string routeToken beserta koordinat tujuan dari server backend Anda. Untuk mengetahui detail tentang cara membuat
token ini di server Anda, lihat Membuat rute kendaraan besar & perkiraan waktu tiba
di dokumentasi Routes API.
Kode berikut adalah contoh token rute:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
Langkah 2: Mengonfigurasi CustomRoutesOptions
Teruskan token rute ke instance CustomRoutesOptions menggunakan
CustomRoutesOptions.builder:
- Teruskan token menggunakan
setRouteToken(routeToken). - Tetapkan moda transportasi menggunakan
setTravelMode(CustomRoutesOptions.TravelMode.DRIVING).
Langkah 3: Menentukan titik jalan dan menetapkan tujuan
Teruskan titik jalan tujuan dan CustomRoutesOptions ke navigator.setDestinations.
Saat mengonfigurasi titik jalan dan meneruskan opsi rute kustom, perhatikan pertimbangan berikut:
- Persyaratan kecocokan tujuan: Koordinat tujuan yang diteruskan ke
setDestinationsharus cocok dengan koordinat tujuan yang digunakan saat membuatrouteToken. Menentukan tujuan yang berbeda akan menyebabkan error. - Perutean sisi jalan: Kendaraan komersial besar tidak dapat dengan mudah melakukan
putar balik di jalan sempit. Untuk memastikan truk mendekati tujuan di sisi jalan yang benar, panggil
setPreferSameSideOfRoad(true)di titik jalan Anda. - Perhentian kendaraan: Untuk memandu truk ke lokasi yang sesuai untuk
berhenti atau menurunkan muatan, panggil
setVehicleStopover(true)di titik jalan Anda. - Titik navigasi: Jika tujuan Anda memiliki pintu masuk barang atau dermaga pemuatan yang ditentukan, tentukan menggunakan token titik navigasi.
Langkah 4: Menangani status rute dan memulai panduan
Daftarkan OnResultListener di
ListenableResultFuture<Navigator.RouteStatus>. Jika status rute adalah OK, panggil navigator.startGuidance untuk memulai navigasi belokan demi belokan yang aktif.
Contoh kode
Gunakan CustomRoutesOptions.builder untuk menetapkan token, lalu teruskan ke navigator.setDestinations.
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
Tampilan dalam kendaraan
Anda dapat memproyeksikan sesi navigasi kendaraan besar ke layar di dasbor menggunakan Navigation for Android Auto.Langkah berikutnya
- Mengubah UI navigasi: Sesuaikan kontrol UI dan elemen visual bawaan, seperti kompas, tombol tengah, dan perspektif kamera.
- Memproses peristiwa navigasi: Tangani update navigasi dan peristiwa siklus proses, seperti progres rute, perubahan perkiraan waktu tiba, dan pengalihan rute.