Mengambil Data Perjalanan Langsung dari Mesin Armada

Consumer SDK memberikan kemampuan siap pakai untuk aplikasi konsumen transportasi online guna menampilkan lokasi dan progres kendaraan yang membawa mereka dalam perjalanan.

Namun, beberapa Penyedia Transportasi Online menginginkan lebih banyak kontrol atas pengalaman pelanggan akhir mereka dengan integrasi yang fleksibel, sambil tetap memanfaatkan lokasi, PWT, dan rute kendaraan yang akurat dan real-time dari Google. Panduan ini menunjukkan cara mengambil data perjalanan langsung dari Fleet Engine, sebagai alternatif penggunaan SDK Konsumen.

Ringkasan

Untuk mengambil informasi perjalanan dari Fleet Engine secara langsung, panggil metode GetTrip, dengan menentukan tampilan JOURNEY_Sharing_V1S (RPC | REST).

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 Perjalanan (RPC | REST) yang dihasilkan akan memiliki kolom berikut yang terisi informasi terbaru yang tersedia untuk Perjalanan:

  • name
  • vehicle_id
  • trip_status
  • trip_type
  • number_of_passengers
  • pickup_point
  • actual_pickup_point
  • pickup_time
  • intermediate_destinations
  • intermediate_destinations_version
  • intermediate_destination_index
  • dropoff_point
  • actual_dropoff_point
  • dropoff_time
  • remaining_waypoints
  • last_location
  • view (== JOURNEY_Sharing_V1S)

Penyedia transportasi online biasanya memeriksa layanan perjalanan untuk mengetahui status setiap perjalanan setiap dua hingga lima detik saat penumpang secara aktif memantau progres kendaraan. Pembaruan lokasi kendaraan biasanya pada interval yang lebih lama, seperti 10 detik. Kolom Trip.last_location.update_time dapat dipantau untuk melihat apakah ada pembaruan sejak panggilan sebelumnya ke GetTrip.

Titik jalan perjalanan

Entity Trip berisi kolom berulang jenis TripWaypoint (RPC | REST). Kolom ini menyertakan semua titik jalan yang harus dilalui kendaraan, secara berurutan, sebelum titik pengantaran terakhir dalam perjalanan ini. Menentukan tampilan Berbagi Perjalanan akan memberi tahu Fleet Engine untuk memasukkan informasi yang telah diperbarui di dataset_titik jalan[0] TripWaypoint. Pada tampilan non-Journey Sharing lainnya, titik jalan tersebut biasanya tidak mencerminkan posisi terbaru kendaraan yang ditetapkan.

Berikut adalah contoh kolom remaining_waypoints Perjalanan A:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
jenis titik jalan = PICKUP_WAYPOINT_TYPE
jalur_ke_titik jalan = LatLng[] LatLng pertama dari jalur tersisa ke penjemputan
LatLng kedua dari jalur tersisa ke penjemputan
...
LatLng terakhir dari jalur tersisa ke penjemputan
pickup_point, jika berbeda dengan yang terakhir
traffic_data
range_meters = jarak dari Vehicle_location saat ini di sepanjang path_to_waypoint ke pengambilan
eta = PWT diperbarui
durasi = durasi yang diperbarui
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
jenis titik jalan = DROP_OFF_WAYPOINT_TYPE
jalur_ke_titik jalan = LatLng[] LatLng ke-1 dari kaki pengantar
LatLng ke-2 dari kaki pengantar
...
LatLng terakhir dari kaki pengantar
dropoff_point, jika berbeda dengan yang terakhir
traffic_data
jarak_meters = jarak dari penjemputan di sepanjang path_to_titik jalan ke titik pengantaran
eta = PWT diperbarui
durasi = durasi segmen turun

Dengan perjalanan back-to-back dan bersama (nebeng), daftar ini dapat berisi titik jalan dari perjalanan lain yang akan dilalui selama 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"
jenis titik jalan = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
jenis titik jalan = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
jenis titik jalan = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
jenis titik jalan = 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.