Mengambil data perjalanan langsung dari Fleet Engine

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:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_titik jalan = LatLng[] LatLng ke-1 dari jalur yang tersisa ke pengambilan
LatLng ke-2 dari jalur yang tersisa ke tempat pengambilan
...
LatLng terakhir dari jalur tersisa ke pengambilan
pickup_point, jika berbeda dengan yang terakhir
traffic_data
distance_meters = jarak dari vehicle_location saat ini di sepanjang path_to_waypoint ke pengambilan
eta = PWT yang diperbarui
durasi = durasi yang diperbarui
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
titik jalan_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng ke-1 dari segmen dropoff
LatLng ke-2 dari segmen dropoff
...
LatLng terakhir dari bagian pengantaran
dropoff_point, jika berbeda dari sebelumnya
traffic_data
distance_meters = jarak dari pengambilan di sepanjang path_to_ terkirim ke penurunan
eta = PWT yang diperbarui
duration = durasi segmen drop-off

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.