Route Overview API adalah produk Solusi Fleet Kilometer Terakhir yang dibangun di DriverSDK. Dengan layanan ini, Anda dapat mengambil informasi rute untuk kendaraan tertentu, baik sebagai pengambilan satu kali maupun secara terus-menerus dengan menggunakan pemroses untuk mendapatkan info terbaru. 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 saluran alpha
di 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 Driver SDK
- Anda telah melakukan inisialisasi
DeliveryDriverApi
di aplikasi dengan objek konteks yang dapat Anda temukan
Lihat Mulai Menggunakan Driver SDK for Android untuk mengetahui detailnya.
Langkah 0 - Penyiapan rute
Anda dapat melewati langkah ini jika telah menyiapkan Fleet Engine dan dapat membuat tugas perhentian kendaraan dan pengiriman.
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 agar dapat mengambil data. Rute yang valid terdiri dari serangkaian titik jalan dan perhentian, dan perhentian hanya dapat ada jika memiliki setidaknya satu tugas terkait. Lihat panduan integrasi Flee Engine API untuk mengetahui 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 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
melakukan inisialisasi DeliveryDriverApi
di DriverSDK, karena objek tersebut merujuk ke
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.
Gunakan 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 diatur ulang, atau saat Fleet Engine memperbarui informasi PWT.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Langkah 3 - Mengaktifkan API
Setelah siap menggunakan informasi rute, Anda harus mengaktifkan API untuk mengizinkannya merespons peristiwa kendaraan. Ingat bahwa API diinisialisasi dalam status dinonaktifkan untuk menghindari konsumsi bandwidth jaringan yang tidak perlu.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Anda dapat menjeda pembaruan ini kapan saja dengan memanggil metode yang sama
yang memiliki nilai false
.
Langkah 4 - Gambar rute di Google Maps
Setelah mendapatkan daftar RouteToVehicleStop
, Anda dapat menggunakannya di
aplikasi Anda. 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);
}
Tindakan ini akan menghasilkan tampilan yang mirip dengan screenshot di sebelah kanan:
Langkah 5 - Dapatkan ringkasan rute
Jika ingin aplikasi melakukan panggilan satu kali untuk mengambil ringkasan 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 bisa melakukan ini daripada berlangganan update rute melalui pemroses peristiwa.
Langkah 6 - Membersihkan
Jika aplikasi tidak lagi memerlukan fungsi ringkasan rute, Anda harus memastikan telah membersihkannya. Dengan melakukan pembersihan, Anda akan menghindari memori, pemrosesan, dan konsumsi jaringan yang tidak perlu 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();