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 lebih besar atas pengalaman pengguna akhir, sekaligus tetap memanfaatkan lokasi kendaraan, perkiraan waktu kedatangan (ETA), dan pemilihan rute 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, dengan menentukan tampilan JOURNEY_SHARING_V1S. Lihat referensi untuk RPC atau
REST.
Server Anda biasanya akan melakukan polling ke 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 pada frekuensi 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
Entity Perjalanan berisi kolom berulang dari jenis TripWaypoint Kolom ini
mencakup semua titik jalan yang harus dilalui kendaraan, secara berurutan, sebelum
titik penurunan akhir perjalanan ini. Menentukan tampilan Berbagi Perjalanan akan memberi tahu Fleet Engine untuk menempatkan informasi terbaru di remaining_waypoints[0] TripWaypoint. Dalam tampilan lain, selain Berbagi Perjalanan, 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 contoh kolom remaining_waypoints untuk perjalanan, Perjalanan A:
| |||||||||||||||||||||
| |||||||||||||||||||||
Dengan perjalanan berturut-turut dan penggabungan bersama, daftar ini mungkin 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 lebih ringkas, tetapi 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" |
| 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 penurunan Perjalanan A bukan bagian dari rute Perjalanan B.