Buat perjalanan berurutan

Dokumen ini menjelaskan cara membuat perjalanan berturut-turut, menentukan kolom, dan menugaskannya ke kendaraan untuk dipenuhi. Anda dianggap telah menyiapkan Fleet Engine, Anda telah membuat kendaraan, memiliki aplikasi pengemudi yang berfungsi, dan secara opsional, aplikasi konsumen. Anda juga harus terbiasa dengan berbagai skenario yang tersedia untuk perjalanan on demand. Lihat panduan terkait berikut untuk bahwa:

Dasar-dasar pembuatan perjalanan

Bagian ini menjelaskan detail permintaan yang diperlukan untuk membuat perjalanan di Fleet Engine. Anda mengirimkan permintaan pembuatan menggunakan gRPC dan REST.

  • Metode CreateTrip(): gRPC atau REST
  • Pesan CreateTripRequest: gRPC saja

Kolom Perjalanan

Gunakan kolom berikut untuk membuat perjalanan di Fleet Engine. Anda dapat menggunakan isian untuk berbagai jenis perjalanan: tujuan tunggal atau multi-tujuan, perjalanan berurutan, atau penggabungan bersama. Anda dapat menyediakan kolom opsional saat Anda membuat perjalanan, atau Anda dapat mengaturnya nanti saat Anda memperbarui perjalanan.

Kolom perjalanan
Nama Wajib? Deskripsi
induk Ya String yang menyertakan project ID. ID ini harus sama dengan ID yang digunakan di seluruh integrasi Fleet Engine Anda, dengan akun layanan yang sama peran.
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:
  • Tujuan tunggal: Tetapkan ke SHARED atau EXCLUSIVE.
  • Multi-tujuan: Tetapkan ke EXCLUSIVE.
  • Kembali ke belakang: Setel ke EXCLUSIVE.
  • Penggabungan bersama: Tetapkan ke SHARED.
pickup_point Ya Titik asal perjalanan.
Tujuan menengah Ya

Khusus perjalanan multi-tujuan: Daftar tujuan perantara yang dikunjungi pengemudi di antara tujuan penjemputan dan pengantaran pesanan. Seperti halnya dropoff_point, kolom ini juga dapat disetel nanti dengan memanggil UpdateTrip, namun perjalanan menurut definisi berisi tujuan perantara.

vehicle_waypoints Ya

Khusus perjalanan penggabungan bersama: Kolom ini mendukung penyisipan titik jalan dari beberapa perjalanan. Pesan ini berisi semua titik jalan yang tersisa untuk kendaraan yang ditugaskan, sebagai titik jalan penjemputan dan pengantaran untuk perjalanan ini. Anda dapat menetapkan kolom ini dengan memanggil CreateTrip atau UpdateTrip. Anda juga dapat perbarui titik jalan kendaraan melalui kolom waypoints dengan panggilan ke UpdateVehicle. Layanan tidak menampilkan informasi ini pada panggilan GetTrip karena alasan privasi.

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 bolak-balik

Berikut ini cara membuat perjalanan berturut-turut dan menetapkannya ke saat ini. Dalam skenario ini, pembuatan perjalanan sama dengan untuk satu tujuan berkemah. 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;
}

Perbarui perjalanan bolak-balik

Saat Anda menetapkan kendaraan untuk perjalanan berturut-turut, Anda menetapkan perjalanan ke kendaraan meski sudah ditetapkan.

Setiap perjalanan yang dibuat di Fleet Engine harus ditetapkan ke kendaraan agar Fleet Engine untuk menghitung PWT perjalanan dan melacaknya. Anda dapat melakukannya selama pembuatan perjalanan atau nanti saat Anda memperbarui perjalanan.

Setelah Anda menetapkan perjalanan ke kendaraan, Fleet Engine secara otomatis menambahkan titik jalan yang terkait dengan perjalanan bolak-balik ke titik jalan kendaraan kolom tersebut. Kolom remainingWaypoints perjalanan berisi daftar semua titik jalan, termasuk yang berasal dari perjalanan lain yang akan dikunjungi sebelumnya penurunan penumpang dalam perjalanan.

Misalnya, pertimbangkan dua perjalanan bolak-balik: Perjalanan A dan Perjalanan B. Kendaraan telah dijemput konsumen untuk Perjalanan A, dan saat dalam perjalanan ke pengantaran lokasi, pengemudi menerima permintaan untuk mengambil konsumen lain untuk perjalanan berikutnya, Perjalanan B.

  • Memanggil getVehicle() akan menampilkan remainingWaypoints yang berisi:
    Drop offB PengambilanB Berpaling.
  • Baik getTrip() maupun Callback onTripRemainingWaypointsUpdated untuk Perjalanan A akan menampilkan remainingWaypoints yang berisi:
    Drop off.
  • Baik getTrip() maupun Callback onTripRemainingWaypointsUpdated untuk Perjalanan B mengembalikan remainingWaypoints yang berisi:
    Drop-offB Pengambilan → dan B Berpaling.

Langkah berikutnya