Panduan ini menunjukkan cara mengambil data perjalanan langsung dari Fleet Engine, sebagai alternatif untuk menggunakan Consumer SDK. Anda dapat menggunakan pendekatan ini untuk mendapatkan kontrol yang lebih besar atas pengalaman pengguna akhir sekaligus memanfaatkan lokasi kendaraan, perkiraan waktu tiba, dan perutean yang akurat dan real-time dari Fleet Engine.
Untuk mengetahui detail tentang penggunaan Consumer SDK, lihat Membagikan perjalanan untuk perjalanan on-demand.
Mengambil informasi perjalanan
Untuk mengambil informasi perjalanan langsung dari Fleet Engine, panggil metode GetTrip
dengan menentukan tampilan JOURNEY_SHARING_V1S. Lihat referensi untuk RPC atau
REST.
Server Anda biasanya akan melakukan polling layanan perjalanan untuk mengetahui status setiap perjalanan saat penumpang secara aktif memantau progres kendaraan. Pembaruan lokasi kendaraan biasanya terjadi setiap 10 detik dan sistem Anda harus melakukan polling dengan kecepatan yang sama. Kolom Trip.last_location.update_time dapat dipantau untuk melihat apakah ada update sejak panggilan sebelumnya ke GetTrip.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String TRIP_ID = "trip-A";
String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
GetTripRequest.newBuilder()
.setName(tripName)
.setView(JOURNEY_SHARING_V1S)
.build();
Trip trip = tripService.getTrip(getTripRequest);
Objek Trip yang dihasilkan memiliki kolom berikut yang diisi dengan informasi terbaru yang tersedia untuk perjalanan:
name |
trip_status |
remaining_waypoints |
vehicle_id |
trip_type |
last_location |
number_of_passengers |
pickup_point |
view (== JOURNEY_SHARING_V1S) |
actual_pickup_point |
intermediate_destinations |
intermediate_destination_index |
pickup_time |
intermediate_destinations_version |
dropoff_point |
actual_dropoff_point |
dropoff_time |
|
Mengambil titik jalan yang tersisa
Entitas Perjalanan berisi kolom berulang berjenis TripWaypoint Kolom ini mencakup semua titik jalan yang harus dilalui kendaraan, secara berurutan, sebelum titik pengantaran akhir perjalanan ini. Menentukan tampilan Berbagi Perjalanan akan memberi tahu
Fleet Engine untuk menempatkan informasi yang diperbarui di remaining_waypoints[0]
TripWaypoint. Di tampilan lain yang bukan Berbagi Perjalanan, titik jalan tersebut biasanya tidak mencerminkan posisi terbaru kendaraan yang ditugaskan. Lihat referensi untuk RPC atau REST.
Untuk mengetahui informasi selengkapnya, lihat Status perjalanan dan titik jalan kendaraan yang tersisa dalam panduan Pengantar perjalanan.
Berikut contoh kolom remaining_waypoints untuk perjalanan, Perjalanan A:
| |||||||||||||||||||||
| |||||||||||||||||||||
Dengan perjalanan gabungan dan berurutan, daftar ini dapat berisi titik jalan dari perjalanan lain yang harus dilalui sebelum perjalanan ini. Misalnya, pertimbangkan
skenario saat Perjalanan B ditetapkan ke kendaraan yang sama dengan Perjalanan A. Kolom
remaining_waypoints untuk Perjalanan A kemudian akan diisi sebagai berikut.
Sebagian besar kolom telah dihilangkan agar lebih ringkas, tetapi kolom tersebut akan diisi secara konsisten dengan contoh sebelumnya.
| [0] | trip_id = "trip_A" |
|---|---|
| waypoint_type = PICKUP_WAYPOINT_TYPE | |
| [1] | trip_id = "trip_B" |
| waypoint_type = PICKUP_WAYPOINT_TYPE | |
| [2] | trip_id = "trip_B" |
| waypoint_type = DROP_OFF_WAYPOINT_TYPE | |
| [3] | trip_id = "trip_A" |
| waypoint_type = DROP_OFF_WAYPOINT_TYPE |
Kolom remaining_waypoint Trip B akan diisi dengan cara yang sama, tetapi hanya
tiga entri pertama yang akan ada, karena titik penghentian Trip A bukan bagian
dari rute Trip B.