Panduan ini menunjukkan cara mengambil data perjalanan langsung dari Fleet Engine, sebagai alternatif penggunaan Consumer SDK. Anda dapat menggunakan pendekatan ini untuk mendapatkan kontrol yang lebih besar atas pengalaman pengguna akhir sambil tetap memanfaatkan lokasi kendaraan, PWT, 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 dari Fleet Engine secara langsung, panggil metode GetTrip
, yang 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. Update lokasi
kendaraan biasanya terjadi setiap 10 detik dan sistem Anda akan 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 telah 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
Entity Perjalanan berisi kolom berulang dari jenis TripWaypoint
Kolom ini
menyertakan semua titik jalan yang harus dilalui kendaraan, secara berurutan, sebelum
titik penurunan terakhir perjalanan ini. Menentukan tampilan Perjalanan Bersama akan memberi tahu
Fleet Engine untuk menempatkan informasi yang diperbarui di TripWaypoint
remaining_waypoints[0]. Di tampilan lain, selain Perjalanan Bersama, titik jalan tersebut biasanya tidak mencerminkan posisi terbaru kendaraan yang ditetapkan. Lihat
referensi untuk RPC atau REST.
Untuk mengetahui informasi selengkapnya, lihat Status perjalanan dan titik jalan kendaraan yang tersisa dalam panduan Pengantar perjalanan.
Berikut adalah contoh kolom remaining_waypoints
untuk perjalanan, Perjalanan A:
| |||||||||||||||||||||
|
Dengan perjalanan penggabungan berturut-turut dan bersama, daftar ini dapat berisi titik jalan
dari perjalanan lain yang akan 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 ringkas, tetapi kolom tersebut akan
diisi sesuai 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" |
titik jalan_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 drop-off Perjalanan A bukan bagian
dari rute Perjalanan B.