Route Overview API adalah produk Solusi Fleet Kilometer Terakhir yang dibuat berdasarkan DriverSDK. Dengan ini, Anda dapat mengambil informasi rute untuk kendaraan tertentu, sebagai pengambilan satu kali atau secara berkelanjutan dengan menggunakan pemroses untuk update. Tujuan Route Overview API mendukung jenis informasi berikut:
- Rencana rute lengkap, termasuk lokasi perhentian kendaraan, waktu perjalanan, jarak
- Jalur polyline rute di antara setiap perhentian.
Dokumen ini menjelaskan langkah-langkah integrasi dengan API untuk aplikasi Anda.
Prasyarat
- Anda harus menjalankan aplikasi Android menggunakan alfa
DriverSDK v4.1.0 atau yang lebih tinggi. Saluran alfa tersedia
dengan menggunakan
transportation-driver-alpha
untuk artifactId Maven. - API menggunakan informasi rute yang disediakan oleh Fleet Engine melalui
Deliveries API. Ini dapat diberikan melalui API di DriverSDK
(
DeliveryDriverApi
) atau langsung ke Fleet Engine.
Langkah-langkah integrasi
Bagian ini membahas langkah-langkah dasar yang diperlukan untuk mengintegrasikan aplikasi driver Android dengan API. Petunjuk ini memiliki asumsi berikut:
- Anda memiliki aplikasi Android yang sudah terintegrasi dengan SDK Driver
- Anda telah melakukan inisialisasi
DeliveryDriverApi
di aplikasi dengan konteks Anda dapat menemukan
Lihat Mulai Menggunakan Driver SDK for Android untuk mengetahui detailnya.
Langkah 0 - Penyiapan rute
Anda dapat melewati langkah ini jika sudah menyiapkan Fleet Engine dan dapat membuat tugas perhentian kendaraan dan pengiriman.
Untuk memuat info perhentian dan tugas ke Fleet Engine, Anda memerlukan kendaraan pengiriman ditetapkan ke rute yang valid. Hal ini karena Route Overview API memerlukan rute yang berbeda untuk mengambil data. Rute yang valid terdiri dari serangkaian titik jalan dan perhentian, dan perhentian hanya bisa ada jika memiliki setidaknya satu tugas Anda. Lihat Panduan integrasi Fleet Engine API untuk informasi selengkapnya.
Langkah 1 - Melakukan inisialisasi API
Setelah menetapkan rute yang valid dengan perhentian dan tugas terkait, Anda dapat
melakukan inisialisasi Route Overview API. Inisialisasi memberikan kerangka kerja
yang diperlukan untuk koneksi antara Fleet Engine dan API. Rute
Overview API harus diinisialisasi dengan objek konteks yang sama seperti yang Anda gunakan
melakukan inisialisasi DeliveryDriverApi
di DriverSDK, karena objek mengacu pada
ID kendaraan yang sama yang ditentukan sebelumnya dalam objek DriverContext
Anda. Hal berikut
contoh menggambarkan cara membuat instance RouteOverviewApi
.
RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
api = RouteOverviewApi.createInstance(context);
}
Langkah 2 - Daftarkan kendaraan untuk peristiwa perubahan rute
Setelah menginisialisasi API, Anda dapat menggunakan VehicleRouteOverview
untuk berinteraksi dengan kemampuan ringkasan rute. Hal ini memungkinkan
untuk menggunakan informasi rute yang Anda berikan selama penyiapan rute.
Gunakan pemroses peristiwa API untuk memfasilitasi pembaruan peristiwa dan pengambilan rute.
Peristiwa perubahan rute terjadi setiap kali jalur ke salah satu perhentian yang ditetapkan kendaraan diperbarui, perhentian diatur ulang, atau ketika Fleet Engine memperbarui informasi PWT.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Langkah 3 - Mengaktifkan API
Sekarang setelah Anda siap untuk menggunakan informasi rute, Anda harus mengaktifkan API untuk memungkinkannya merespons peristiwa kendaraan. Ingat bahwa API diinisialisasi dalam dinonaktifkan untuk menghindari penggunaan bandwidth jaringan yang tidak perlu.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Anda dapat menjeda pembaruan ini kapan saja dengan memanggil metode yang sama dengan
senilai false
.
Langkah 4 - Gambar rute di Google Maps
Setelah mendapatkan daftar RouteToVehicleStop
, Anda dapat menggunakannya di
aplikasi. Misalnya, Anda dapat menggambar jalur polyline rute di Google Maps
di instance Compute Engine. Cuplikan kode berikut menunjukkan contoh yang menggambar rute
polyline pada tampilan peta dan menambahkan penanda di atas setiap lokasi perhentian.
GoogleMap googleMap = … // Instance of the Map view you are using
ImmutableList<RouteToVehicleStop> route = event.newRoute();
PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
for (RouteToVehicleStop stop : route) {
routePolyline.addAll(stop.path());
MarkerOptions marker =
new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
googleMap.addMarker(marker);
}
googleMap.addPolyline(routePolyline);
}
Tindakan ini akan menghasilkan tampilan yang mirip dengan screenshot di sebelah kanan:
Langkah 5 - Dapatkan ringkasan rute
Jika Anda ingin aplikasi melakukan panggilan satu kali untuk mengambil snapshot informasi rute saat ini, Anda dapat menggunakan metode berikut untuk mengambil data:
ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();
Anda bisa melakukan ini daripada berlangganan update rute melalui pemroses peristiwa.
Langkah 6 - Membersihkan
Jika aplikasi Anda tidak lagi memerlukan fungsi ringkasan rute, Anda harus memastikan yang telah Anda bersihkan. Melakukan pembersihan akan menghindari memori, pemrosesan, dan konsumsi jaringan dalam aplikasi Anda.
Menghapus pemroses peristiwa tertentu
Anda harus menghapus pemroses peristiwa jika pemroses tertentu tidak lagi diperlukan.
vehicleRouteOverview.removeOnRouteChangedEventListener(listener);
Menghapus semua pemroses peristiwa
Sebagai bagian dari rutinitas pembersihan, Anda dapat menghapus semua pemroses peristiwa yang terdaftar sekaligus.
vehicleRouteOverview.clearEventListeners();
Menghapus instance Route Overview API
Setiap kali Ringkasan Rute tidak lagi diperlukan atau ID kendaraan yang dilacak telah berubah, Anda dapat memanggil API ini untuk menghapus referensi internal.
vehicleRouteOverview.clearInstance();