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 pada 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 perjalanan 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 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
Perjalanan B akan diisi dengan cara yang sama, tetapi hanya tiga entri pertama yang akan ada, karena titik penghentian Perjalanan A bukan bagian dari rute Perjalanan B.