Route Overview API adalah produk Fleet Mil Terakhir yang dibuat di DriverSDK. Dengan solusi ini, Anda dapat mengambil informasi rute untuk kendaraan tertentu, baik sebagai pengambilan satu kali maupun secara terus-menerus menggunakan pemroses untuk pembaruan. Route Overview API mendukung jenis informasi berikut:
- Rencana rute lengkap, termasuk lokasi perhentian kendaraan, waktu perjalanan, dan 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 saluran alfa
DriverSDK v4.1.0 atau yang lebih baru. Saluran alfa tersedia
dengan menggunakan
transportation-driver-alpha
untuk artifactId Maven. - API menggunakan informasi rute yang diberikan oleh Fleet Engine melalui
Deliveries API. ID 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 sudah memiliki aplikasi Android yang telah terintegrasi dengan Driver SDK
- Anda telah melakukan inisialisasi
DeliveryDriverApi
di aplikasi dengan objek konteks yang dapat ditemukan
Lihat Mulai Menggunakan Driver SDK untuk Android untuk mengetahui detailnya.
Langkah 0 - Penyiapan rute
Anda dapat melewati langkah ini jika sudah menyiapkan Fleet Engine dan dapat membuat tugas penghentian dan pengiriman kendaraan.
Untuk memuat info perhentian dan tugas ke Fleet Engine, Anda memerlukan kendaraan pengiriman yang ditetapkan ke rute yang valid. Hal ini karena Route Overview API memerlukan rute yang valid untuk mengambil data. Rute yang valid terdiri dari serangkaian titik jalan dan perhentian, dan perhentian hanya bisa ada jika memiliki setidaknya satu tugas terkait. Lihat panduan integrasi Fleet Engine API untuk mengetahui informasi selengkapnya.
Langkah 1 - Melakukan inisialisasi API
Setelah menetapkan rute yang valid dengan perhentian dan tugas terkait, Anda dapat menginisialisasi Route Overview API. Inisialisasi menyediakan framework
yang diperlukan untuk koneksi antara Fleet Engine dan API. Route
Overview API harus diinisialisasi dengan objek konteks yang sama dengan yang Anda gunakan untuk
menginisialisasi DeliveryDriverApi
di DriverSDK, karena objek tersebut merujuk pada
ID kendaraan yang sama yang ditentukan sebelumnya dalam objek DriverContext
Anda. Contoh
berikut 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 objek VehicleRouteOverview
untuk berinteraksi dengan kemampuan ringkasan rute. Hal ini memungkinkan
aplikasi Anda menggunakan informasi rute yang Anda berikan selama penyiapan rute.
Menggunakan pemroses peristiwa API untuk memfasilitasi pembaruan peristiwa dan pengambilan rute.
Peristiwa perubahan rute terjadi setiap kali jalur ke salah satu perhentian yang ditetapkan untuk kendaraan diperbarui, perhentian disusun ulang, atau saat Fleet Engine memperbarui informasi PWT.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Langkah 3 - Aktifkan API
Setelah siap menggunakan informasi rute, Anda harus mengaktifkan API agar memungkinkannya merespons peristiwa kendaraan. Ingat bahwa API diinisialisasi dalam status dinonaktifkan untuk menghindari konsumsi bandwidth jaringan yang tidak perlu.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Anda dapat menjeda update ini kapan saja dengan memanggil metode yang sama dengan
nilai 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 instance Google Maps. Cuplikan kode berikut menunjukkan contoh yang menggambar polyline
rute 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);
}
Hal ini menghasilkan tampilan yang mirip dengan screenshot di sebelah kanan:
Langkah 5 - Dapatkan snapshot rute
Jika ingin aplikasi Anda melakukan panggilan satu kali untuk mengambil snapshot informasi rute saat ini, Anda dapat menggunakan metode berikut untuk mengambil data tersebut:
ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();
Anda dapat melakukannya daripada berlangganan pembaruan rute melalui pemroses peristiwa.
Langkah 6 - Pembersihan
Jika aplikasi Anda tidak lagi memerlukan fungsi ringkasan rute, Anda harus memastikan bahwa Anda telah melakukan pembersihan. Melakukan pembersihan akan menghindari konsumsi memori, pemrosesan, dan jaringan yang tidak perlu di 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 berbeda 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();