Dokumen ini menjelaskan cara membuat perjalanan berturut-turut, menetapkan kolom yang benar, dan menetapkannya ke kendaraan untuk dipenuhi. Ini mengasumsikan bahwa Anda telah menyiapkan Fleet Engine, membuat kendaraan, memiliki aplikasi pengemudi yang berfungsi, dan secara opsional, aplikasi konsumen. Anda juga harus memahami berbagai skenario perjalanan yang tersedia untuk perjalanan on-demand. Lihat panduan terkait berikut untuk mengetahuinya:
- Menyiapkan Fleet Engine
- Membuat kendaraan
- Skenario perjalanan di ringkasan Perjalanan on-demand
Dasar-dasar pembuatan perjalanan
Bagian ini menjelaskan detail permintaan yang diperlukan untuk membuat perjalanan di Fleet Engine. Anda mengeluarkan permintaan pembuatan menggunakan gRPC dan REST.
Kolom Perjalanan
Gunakan kolom berikut untuk membuat perjalanan di Fleet Engine. Anda dapat menggunakan kolom yang berbeda untuk berbagai jenis perjalanan: perjalanan dengan satu atau beberapa tujuan, perjalanan berturut-turut, atau perjalanan gabungan bersama. Anda dapat menyediakan kolom opsional saat membuat perjalanan, atau menetapkannya nanti saat memperbarui perjalanan.
Nama | Wajib? | Deskripsi |
---|---|---|
parent | Ya | String yang menyertakan project ID. ID ini harus sama dengan ID yang digunakan di seluruh integrasi Fleet Engine, dengan peran akun layanan yang sama. |
trip_id | Ya | String yang Anda buat yang mengidentifikasi perjalanan ini secara unik. ID perjalanan memiliki batasan tertentu, seperti yang ditunjukkan dalam referensi. |
trip_type | Ya | Tetapkan TripType ke nilai berikut untuk jenis perjalanan yang Anda buat:
|
pickup_point | Ya | Titik asal perjalanan. |
Tujuan perantara | Ya | Khusus perjalanan multi-tujuan: Daftar tujuan perantara yang dikunjungi pengemudi di antara
pengambilan dan pengantaran. Seperti |
vehicle_waypoints | Ya | Khusus perjalanan berbagi tumpangan: Kolom ini mendukung interleaving titik jalan dari beberapa perjalanan.
File ini berisi semua titik perhentian yang tersisa untuk kendaraan yang ditetapkan, serta
titik perhentian pengambilan dan pengantaran untuk perjalanan ini. Anda dapat menetapkan kolom ini
dengan memanggil |
number_of_passengers | Tidak | Jumlah penumpang dalam perjalanan. |
dropoff_point | Tidak | Tujuan perjalanan. |
vehicle_id | Tidak | ID kendaraan yang ditetapkan untuk perjalanan. |
Contoh: membuat perjalanan berturut-turut
Berikut ini menunjukkan cara membuat perjalanan berturut-turut dan menetapkannya ke kendaraan. Dalam skenario ini, pembuatan perjalanan sama dengan perjalanan tujuan tunggal. Anda baru dapat membuat perjalanan lain dan menetapkannya ke kendaraan dengan perjalanan yang sudah aktif.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
Memperbarui perjalanan berturut-turut
Saat menetapkan kendaraan untuk perjalanan berturut-turut, Anda menetapkan perjalanan ke kendaraan meskipun kendaraan tersebut telah ditetapkan.
Setiap perjalanan yang dibuat di Fleet Engine harus ditetapkan ke kendaraan agar Fleet Engine dapat menghitung perkiraan waktu tiba (ETA) perjalanan dan melacaknya. Anda dapat melakukannya selama pembuatan perjalanan atau nanti saat memperbarui perjalanan.
Setelah Anda menetapkan perjalanan ke kendaraan, Fleet Engine akan otomatis menambahkan titik jalan yang terkait dengan perjalanan berturut-turut ke kolom titik jalan kendaraan. Kolom remainingWaypoints
perjalanan berisi daftar semua titik jalan, termasuk titik jalan dari perjalanan lain yang akan dikunjungi sebelum pengantaran perjalanan.
Misalnya, pertimbangkan dua perjalanan berturut-turut: Perjalanan A dan Perjalanan B. Kendaraan telah menjemput konsumen untuk Perjalanan A, dan saat dalam perjalanan ke lokasi penjemputan, pengemudi menerima permintaan untuk menjemput konsumen lain untuk perjalanan berikutnya, Perjalanan B.
- Memanggil
getVehicle()
akan menampilkanremainingWaypoints
yang berisi:
A Drop-off → B Pickup → B Drop-off. getTrip()
atau callbackonTripRemainingWaypointsUpdated
untuk Perjalanan A menampilkanremainingWaypoints
yang berisi:
Penjemputan.getTrip()
atau callbackonTripRemainingWaypointsUpdated
untuk Perjalanan B menampilkanremainingWaypoints
yang berisi:
A Pengantaran → B Penjemputan → dan B Pengantaran.