Membuat perjalanan satu tujuan

Dokumen ini menjelaskan cara membuat satu perjalanan tujuan, menetapkan dan menugaskannya ke sebuah kendaraan untuk dipenuhi. Anda dianggap telah menyiapkan Fleet Engine dan Anda telah membuat kendaraan, memiliki aplikasi pengemudi yang berfungsi, dan secara opsional, aplikasi konsumen. Lihat panduan terkait berikut untuk mengetahui informasinya:

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 membuat perjalanan, atau menetapkannya nanti saat 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, 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:
  • 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 perantara 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 dengan fitur berbagi tumpangan: Kolom ini mendukung interleaving titik jalan dari beberapa perjalanan. File ini berisi semua titik jalan yang tersisa untuk kendaraan yang ditetapkan, serta titik jalan pengambilan 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: perjalanan satu tujuan

Contoh berikut menunjukkan cara membuat perjalanan ke Grand Indonesia Mal Timur. Perjalanan ini melibatkan dua penumpang, bersifat eksklusif, dan statusnya adalah NEW. provider_id perjalanan harus sama dengan ID Google Cloud project ID Anda. Contoh ini menunjukkan Project Google Cloud dengan ID project my-rideshare-co-gcp-project. Project ini juga harus menyertakan akun layanan untuk memanggil Fleet Engine. Lihat Peran akun layanan untuk mengetahui detailnya.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Langkah berikutnya