Mengambil data perjalanan langsung dari Fleet Engine

Panduan ini menunjukkan cara mengambil data perjalanan langsung dari Fleet Engine, sebagai sebagai alternatif penggunaan Consumer SDK. Anda dapat menggunakan pendekatan ini untuk mengontrol pengalaman pengguna akhir Anda sambil tetap memanfaatkan Fleet Lokasi kendaraan, PWT, dan pemilihan rute yang akurat dan real-time mesin.

Untuk mengetahui detail tentang cara menggunakan Consumer SDK, lihat Membagikan perjalanan untuk on-demand perjalanan.

Mengambil informasi perjalanan

Untuk mengambil informasi perjalanan dari Fleet Engine secara langsung, panggil GetTrip , dengan menetapkan tampilan JOURNEY_SHARING_V1S. Lihat referensi untuk RPC atau REST.

Server Anda biasanya akan memeriksa layanan perjalanan untuk mengetahui status setiap perjalanan saat penumpang secara aktif memantau progres kendaraan. Lokasi kendaraan pembaruan biasanya terjadi setiap 10 detik dan sistem Anda akan memeriksa rasio yang sama. Kolom Trip.last_location.update_time dapat dipantau untuk melihat apakah ada pembaruan 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 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 dengan jenis TripWaypoint Kolom ini berisi semua titik jalan yang perlu dilalui kendaraan, secara berurutan, sebelum titik perhentian terakhir dalam perjalanan ini. Menentukan tampilan Berbagi Perjalanan akan memberi tahu Fleet Engine untuk memasukkan informasi terbaru di remaining_waypoints[0] TripWaypoint. Dalam tampilan lain, {i>non-Journey Sharing<i}, titik jalan itu tidak biasanya mencerminkan posisi terakhir dari kendaraan yang ditugaskan. Lihat untuk RPC atau REST.

Untuk informasi selengkapnya, lihat Status perjalanan dan titik jalan kendaraan yang tersisa di 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 pengambilan
...
LatLng terakhir dari jalur yang tersisa ke pengambilan
pickup_point, jika berbeda dengan yang terakhir
traffic_data
distance_meters = jarak dari Vehicle_location saat ini di sepanjang path_to_PATH ke penjemputan
eta = PWT terbaru
durasi = durasi yang diperbarui
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
titik jalan_type = DROP_OFF_WAYPOINT_TYPE
path_to_titik jalan = LatLng[] LatLng ke-1 dari segmen dropoff
LatLng ke-2 dari segmen dropoff
...
LatLng terakhir dari segmen dropoff
dropoff_point, jika berbeda dari sebelumnya
traffic_data
distance_meters = jarak dari pengambilan di sepanjang path_to_ terkirim ke penurunan
eta = PWT terbaru
durasi = durasi segmen pengguna yang menurun

Dengan perjalanan gabungan berturut-turut dan bersama, daftar ini dapat berisi titik jalan dari perjalanan lain yang harus dilintasi sebelum perjalanan ini. Misalnya, pertimbangkan skenario saat Perjalanan B ditetapkan ke kendaraan yang sama dengan Perjalanan A. Tujuan Kolom remaining_waypoints untuk Perjalanan A kemudian akan diisi sebagai berikut. Sebagian besar {i>field<i} telah dihilangkan agar lebih ringkas, tetapi akan yang diisi sesuai dengan contoh sebelumnya.

[0] trip_id = "trip_A"
titik jalan_type = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
titik jalan_type = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
titik jalan_type = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
titik jalan_type = DROP_OFF_WAYPOINT_TYPE

Kolom remaining_waypoint Perjalanan B akan diisi dengan cara serupa, tetapi hanya kolom tiga entri pertama akan ada, karena titik {i>drop-off<i} Perjalanan A bukan bagian dari rute Perjalanan B.