Dokumen ini menjelaskan layanan perjalanan on demand di Fleet Engine. Anda dianggap telah membaca Apa itu Fleet Engine? dan mengetahui kemampuan layanan Fleet Engine tertentu yang Anda perlukan.
Saat Anda membaca dokumentasi ini, perhatikan hal berikut:
- Anda menetapkan perjalanan ke kendaraan sebagai cara untuk membuat model hubungan dunia nyata antara perjalanan dan pengemudi yang menyelesaikan perjalanan tersebut. Baca Pengantar kendaraan untuk lebih memahami cara kerja kendaraan di Fleet Engine.
- Dokumen ini juga menjelaskan beberapa elemen kendaraan yang hanya berlaku untuk perjalanan on demand.
- Fleet Engine untuk perjalanan on demand menggunakan dua resource:
Trip
danVehicle
. Fleet Engine menyediakan layanan gRPC dan antarmuka REST:
Apa itu perjalanan on-demand?
Di Fleet Engine, perjalanan mewakili perjalanan on-demand yang dapat mencapai berbagai tujuan transportasi. Misalnya:
- Orang: Mengangkut satu atau beberapa orang dari lokasi penjemputan ke lokasi pengantaran.
- Makanan dan barang: Ambil satu atau beberapa pesanan makanan dari lokasi bisnis tertentu dan kirimkan pesanan ini ke satu atau beberapa penerima di lokasi mereka.
Elemen perjalanan
Ilustrasi berikut menampilkan elemen dasar perjalanan: ID kendaraan yang ditetapkan, status perjalanan, dan titik jalan perjalanan. Jenis titik jalan bervariasi bergantung pada tahap perjalanan: pengangkutan penumpang, perantara, dan penurunan penumpang. Dalam perjalanan, tujuan perantara atau titik jalan bersifat opsional. Pada contoh gambar, kendaraan telah tiba di tempat penjemputan
Model data untuk perjalanan
Saat backend menetapkan perjalanan ke kendaraan, backend Anda juga harus mengetahui tentang perjalanan lain
yang dijadwalkan untuk kendaraan. Oleh karena itu, diagram berikut mengilustrasikan
model data resource Trip
bersama diagram untuk
resource Vehicle
yang terkait. Anda dapat meninjau kedua diagram untuk mempelajari
hubungan antara kedua resource tersebut, dengan memperhatikan hal berikut:
- Perjalanan ditetapkan ke kendaraan berdasarkan ID.
- Pengaitan perjalanan kendaraan bersifat many-to-one. Artinya, perjalanan tertentu mungkin menjadi satu-satunya perjalanan yang dijadwalkan untuk kendaraan, atau mungkin merupakan salah satu dari banyak perjalanan untuk kendaraan.
- Objek perjalanan berisi dua daftar titik jalan perjalanan, satu untuk perjalanan itu sendiri dan satu lagi untuk kendaraan yang ditetapkan. Hal ini dijelaskan lebih detail dalam dokumen ini.
- Kendaraan on demand juga memiliki daftar titik jalan perjalanan, yang dijelaskan lebih lengkap dalam dokumen ini.
Model data perjalanan
Model data kendaraan
Jenis perjalanan
Saat membuat perjalanan, layanan Anda dapat menetapkan kolom tripType
sebagai salah satu dari berikut ini: EXCLUSIVE
atau SHARED
.
Perjalanan eksklusif
Perjalanan eksklusif adalah perjalanan yang perjalanannya tidak tumpang-tindih dengan perjalanan lainnya, dan perjalanan yang diselesaikan oleh kendaraan sebelum atau setelah perjalanan lain pada jadwalnya. Artinya, saat sistem Anda menetapkan perjalanan eksklusif, sistem hanya dapat menetapkan perjalanan tersebut ke kendaraan yang harus diselesaikan secara berurutan, bukan serentak. Sebagai ilustrasi, Anda dapat membuat perjalanan eksklusif dengan karakteristik berikut:
- Perjalanan dengan satu kali penjemputan dan satu penurunan untuk kendaraan tanpa perjalanan lain pada jadwalnya.
- Perjalanan dengan penjemputan, titik jalan perantara, dan penurunan untuk kendaraan tanpa perjalanan lain dalam jadwalnya.
- Perjalanan dengan penjemputan dan pengantaran yang ditambahkan ke akhir perjalanan yang sudah dijadwalkan untuk kendaraan. Dalam kasus ini, setiap perjalanan bersifat eksklusif untuk perjalanan lain, tetapi perjalanan tersebut diurutkan secara berurutan. Selain itu, perjalanan tersebut dapat menyertakan tujuan perantara jika diperlukan.
Perjalanan bersama
Perjalanan bersama adalah perjalanan yang perjalanannya dapat tumpang-tindih dengan pemesanan perjalanan lainnya. Untuk jenis perjalanan ini, sistem Anda dapat menetapkannya agar terjadi secara bersamaan dengan tujuan yang berinterleaving. Misalnya, penurunan untuk satu perjalanan mungkin terjadi setelah penjemputan untuk perjalanan lainnya. Selain itu, perjalanan bersama tidak boleh menggunakan titik jalan perantara.
Biasanya, Anda akan menggunakan perjalanan bersama untuk salah satu skenario penggabungan bersama yang diilustrasikan di bagian Skenario perjalanan.
Titik jalan perjalanan
Untuk Google Maps, titik jalan adalah tempat di sepanjang rute, biasanya ditentukan dengan koordinat lintang/bujur. Untuk perjalanan on demand, titik jalan direpresentasikan oleh
objek TripWaypoint
, yang berisi informasi tambahan seperti
berikut:
- ID perjalanan
WaypointType
, baik pengangkutan penumpang, perantara, atau penurunan- Informasi jalur dan jarak antara titik jalan perjalanan sebelumnya dan saat ini
- Kondisi lalu lintas di sepanjang jalur ke titik jalan perjalanan
- Waktu perjalanan dan PWT ke titik jalan perjalanan
Lihat referensi:
Jenis titik jalan perjalanan
Titik jalan perjalanan ditentukan dalam kaitannya dengan siklus proses umum dari perjalanan kendaraan:
- Titik jalan pengambilan—Digunakan untuk asal atau awal perjalanan, seperti saat pengemudi mengambil pesanan makanan untuk pengiriman berikutnya, atau saat pengemudi menjemput seseorang untuk penurunan di lain waktu.
- Titik jalan perantara—Dan tujuan perantara yang dapat digunakan untuk berbagai tujuan, seperti saat pengemudi menurunkan satu penumpang dari kelompok pemesanan yang sama, tetapi perjalanan itu sendiri belum selesai karena lebih banyak penumpang yang tersisa. Titik jalan ini bersifat opsional dan hanya dapat digunakan untuk perjalanan eksklusif.
- Titik jalan penurunan—Digunakan untuk lokasi akhir perjalanan, seperti saat penumpang yang tersisa keluar dari kendaraan.
Daftar titik jalan perjalanan
Entity Trip
berisi dua daftar titik jalan, yang masing-masing merupakan kolom berulang dari jenis TripWaypoint
. Satu daftar menjelaskan kolom yang diperlukan untuk
perjalanan itu sendiri, dan daftar lainnya untuk mendeskripsikan semua titik jalan yang tersisa untuk kendaraan
yang terkait dengan perjalanan. Informasi ini memungkinkan Anda memiliki gambaran lengkap tentang semua elemen
perjalanan: perjalanan dan keseluruhan perjalanan kendaraan.
- Titik jalan yang tersisa untuk kendaraan—Kolom yang disebut
vehicle_waypoints
. Kolom ini berisi semua titik jalan yang tersisa untuk semua perjalanan yang ditetapkan ke kendaraan. - Titik jalan yang tersisa untuk perjalanan—Kolom bernama
remaining_waypoints
. Objek ini berisi titik jalan yang harus dilalui kendaraan secara berurutan sebelum titik penurunan terakhir perjalanan. Lihat skenario di Skenario perjalanan.- Untuk perjalanan satu tujuan yang ditetapkan ke kendaraan tanpa perjalanan lain pada jadwalnya, perjalanan ini hanya akan menyertakan lokasi penjemputan dan pengantaran, dengan asumsi kendaraan belum meninggalkan titik jalan penjemputan.
- Untuk skenario perjalanan lainnya saat kendaraan juga dijadwalkan untuk
perjalanan lainnya, titik jalan yang tersisa untuk setiap perjalanan dalam itinerarinya akan
menyertakan semua titik jalan dari perjalanan lain yang harus dilalui kendaraan
sebelum mencapai titik jalan pengantaran untuk perjalanan tersebut. Misalnya, dalam
perjalanan berturut-turut saat kendaraan dalam perjalanan ke penurunan untuk perjalanan A,
titik jalan yang tersisa untuk perjalanan B akan menyertakan titik jalan penurunan
untuk perjalanan A. Fleet Engine menghitung informasi ini menggunakan kolom
vehicle_waypoints
.
Lihat referensi untuk entity Trip
: gRPC atau REST.
Skenario perjalanan
Diagram berikut mengilustrasikan berbagai skenario perjalanan yang didukung. Dalam
skenario ini, hanya perjalanan penggabungan bersama yang memiliki jenis SHARED
; yang lainnya
adalah EXCLUSIVE
. Diagram juga menampilkan status perjalanan dan titik jalan
yang tersisa untuk kendaraan yang melakukan perjalanan tersebut, konsep yang nanti akan dijelaskan dalam
panduan ini.
Perjalanan satu tujuan
Perjalanan satu tujuan adalah perjalanan EXCLUSIVE
dengan satu
penjemputan dan satu lokasi pengantaran. Misalnya, pengemudi menjemput
penumpang dari satu lokasi dan mengangkutnya ke lokasi lain; atau pengemudi
mengambil pesanan pengiriman makanan dari restoran dan menyerahkannya ke
pelanggan.
Perjalanan multi-tujuan
Perjalanan multi-tujuan adalah perjalanan EXCLUSIVE
yang berisi
satu atau beberapa tujuan perantara antara lokasi penjemputan dan pengantaran. Misalnya, tiga pelanggan transportasi online memesan transportasi secara bersamaan dari
ponsel satu orang, tetapi masing-masing memiliki tujuan yang berbeda.
Perjalanan bolak-balik
Perjalanan berturut-turut adalah perjalanan EXCLUSIVE
yang berisi serangkaian
perjalanan independen yang terjadi satu demi satu. Setiap perjalanan dalam
rantai dapat berupa satu atau beberapa tujuan. Dalam skenario ini, pengemudi berkomitmen untuk menjemput pelanggan lain sebelum menyelesaikan perjalanan saat ini.
Perjalanan ini hanya dapat ditetapkan ke kendaraan yang memungkinkan penjadwalan berurutan. Lihat referensi Vehicle
REST,
gRPC.
Perjalanan penggabungan bersama
Perjalanan penggabungan bersama berbeda dengan jenis perjalanan lainnya. Pertama, perjalanan ini harus berupa perjalanan SHARED
, bukan EXCLUSIVE
.
Di sini, kendaraan menjalankan perjalanan secara serentak, bukan berurutan,
seperti pada perjalanan eksklusif. Meskipun perjalanan penggabungan bersama membagikan
perjalanannya dengan perjalanan lain, perjalanan ini tidak membagikan informasi lokasi
penjemputan dan pengantaran di antara perjalanan. Sebaliknya, setiap perjalanan adalah
pemesanan eksklusif sehingga pengguna akhir yang memesan satu perjalanan tidak dapat
melihat informasi penjemputan atau tujuan untuk perjalanan lain, kecuali
perjalanannya sendiri. Contoh:
- Layanan antar-jemput bandara menjemput berbagai pelanggan di
tempat tinggal mereka dan menyetorkannya di terminal bandara yang berbeda di sepanjang
rute. Orang ke-2 mungkin menggunakan aplikasi konsumen Anda untuk melacak progres
perjalanan, tetapi aplikasi mereka hanya menampilkan bagian dari perjalanan tersebut, bukan
lokasi penjemputan orang 1, atau lokasi orang 1 akan
diturunkan, meskipun ada bagian perjalanan yang tumpang tindih.
- Seorang pengemudi pengantar makanan mengambil tiga pesanan makanan dari restoran yang sama untuk dikirimkan ke kediaman pelanggan yang berbeda. Dengan menggunakan aplikasi konsumen,
Orang ke-3 dapat melihat di mana dan kapan makanannya diambil serta melihat
rute pengemudi, tetapi tidak dapat melihat lokasi pengantaran makanan untuk orang 1 dan 2.
Status perjalanan dan siklus prosesnya
Bagian ini menjelaskan status perjalanan dan dampaknya terhadap kendaraan serta berbagai skenario yang Anda temui saat menetapkan dan mengelola perjalanan on demand.
Perjalanan umumnya berlangsung melalui berbagai status, dari pembuatan hingga selesai. Umumnya, perjalanan dapat bersifat aktif atau tidak aktif, bergantung pada statusnya. Status perjalanan memengaruhi berbagai skenario kasus penggunaan dengan Fleet Engine, serta kemampuan Anda untuk mengidentifikasi progres kendaraan selama perjalanan. Bagian bagian selanjutnya dari dokumen ini membahas skenario tersebut.
Tabel berikut mencantumkan status perjalanan menurut jenis aktif dan tidak aktif.
Status perjalanan aktif | Status perjalanan tidak aktif |
---|---|
NEW UNKNOWN_TRIP_STATUS ENROUTE_TO_PICKUP ARRIVED_AT_PICKUP ENROUTE_TO_INTERMEDIATE_DESTINATION ARRIVED_AT_INTERMEDIATE_DESTINATION ENROUTE_TO_DROPOFF
|
COMPLETE CANCELED
|
Status perjalanan dan titik jalan kendaraan yang tersisa
Saat menetapkan perjalanan tambahan ke kendaraan yang sudah melakukan perjalanan, Anda harus memahami hubungan antara titik jalan yang tersisa untuk kendaraan dan bagaimana status perjalanan memengaruhi titik jalan yang tersisa tersebut.
Misalnya, Anda dapat menetapkan permintaan transportasi online baru ke kendaraan yang hanya mendukung perjalanan eksklusif dan sedang dalam proses menyelesaikan perjalanan. Dalam hal ini, Anda akan memodelkan perjalanan tersebut sebagai perjalanan berturut-turut. Saat menetapkan perjalanan tersebut, sistem Anda harus memastikan bahwa titik jalan untuk perjalanan baru muncul setelah titik jalan untuk perjalanan yang sedang berlangsung.
Selama perjalanan kendaraan, Fleet Engine menghapus titik jalan perjalanan sebelumnya dari daftar titik jalan yang tersisa di kendaraan hanya saat kendaraan melaporkan bahwa sedang dalam perjalanan ke tujuan berikutnya atau selesai. Artinya, salah satu dari hal berikut:
- ENROUTE_TO_INTERMEDIATE_DESTINATION
- ENROUTE_TO_DROPOFF
- SELESAI
Saat status perjalanan berubah menjadi COMPLETED
, Fleet Engine akan menghapus titik jalan akhir
perjalanan dari daftar titik jalan kendaraan yang tersisa.
Sebaliknya, perubahan status yang menunjukkan kedatangan di titik jalan biasanya tidak berpengaruh pada daftar titik jalan yang tersisa untuk kendaraan:
- ARRIVED_AT_PICKUP
- ARRIVED_AT_INTERMEDIATE_DESTINATION
- ARRIVED_AT_DROPOFF
Untuk menggambarkan dengan contoh perjalanan on-demand: misalnya pengemudi menjemput
pelanggan dari tempat tinggalnya, mengantarnya ke tempat pelanggan menunggu
menyelesaikan tugas, lalu mengantar pelanggan kembali ke tempat tinggal
mereka. Saat pertama kali dibuat, perjalanan memiliki tiga titik jalan: PICKUP
, INTERMEDIATE
, dan DROPOFF
. Tabel berikut mengilustrasikan hasil kueri untuk titik jalan yang tersisa di berbagai status perjalanan:
Status perjalanan | Titik jalan lainnya |
---|---|
ARRIVED_AT_PICKUP |
PICKUP INTERMEDIATE DROPOFF
|
ENROUTE_TO_INTERMEDIATE_DESTINATION |
PICKUP INTERMEDIATE DROPOFF
|
ARRIVED_AT_INTERMEDIATE_DESTINATION |
PICKUP INTERMEDIATE DROPOFF
|
ENROUTE_TO_DROPOFF |
PICKUP INTERMEDIATE DROPOFF
|
ARRIVED_AT_DROPOFF |
PICKUP INTERMEDIATE DROPOFF
|
COMPLETE |
PICKUP INTERMEDIATE DROPOFF |
Persyaratan status untuk perjalanan yang ditetapkan ulang atau dibatalkan
Sebelum dapat melakukan salah satu tindakan berikut, Anda harus menetapkan status perjalanan ke
NEW
atau CANCELED
.
- Saat mengubah penetapan kendaraan untuk perjalanan. Misalnya, jika pengemudi menolak penetapan kendaraan untuk sebuah perjalanan dan perlu ditetapkan ulang ke kendaraan lain.
- Saat menghapus penetapan kendaraan untuk perjalanan. Misalnya, jika pengemudi
membatalkan perjalanan dalam perjalanan dan Anda ingin menghapus penetapan kendaraan, statusnya
harus
NEW
atauCANCELED
.
Hasil penelusuran berdasarkan status perjalanan
Saat Anda menggunakan layanan SearchTrips
untuk kendaraan tertentu, layanan ini akan menampilkan daftar perjalanan aktif di SearchTripsResponse
. Perjalanan aktif juga muncul di
kolom active_trips
entitas Vehicle
. Lihat referensi SearchTripsResponse
untuk mengetahui detailnya: gRPC atau REST.
Oleh karena itu, semua perjalanan dengan status aktif akan muncul di kolom active_trips
,
tetapi perjalanan yang diselesaikan atau dibatalkan tidak.