Sebagai bagian dari Solusi Perjalanan dan Pengiriman On-demand, Perencanaan dan Pengiriman Rute
memungkinkan Anda menemukan pengemudi terdekat dengan menyediakan API SearchVehicles
.
SearchVehicles
API memungkinkan Anda menemukan pengemudi terdekat yang tersedia di
Aplikasi konsumen Solusi Perjalanan dan Pengiriman On-demand yang paling cocok untuk tugas
seperti angkutan atau
permintaan pengiriman. API SearchVehicles
menampilkan
daftar peringkat pengemudi yang mencocokkan atribut tugas dengan atribut
kendaraan di armada Anda.
Atribut tugas dapat mencakup:
- Lokasi penjemputan dan pengantaran
- Jenis kendaraan dan perjalanan yang diminta
- Kapasitas yang diperlukan
- Atribut pencocokan wajib lainnya
Atribut kendaraan dapat mencakup:
- Lokasi terakhir kendaraan yang diketahui
- Status, jenis, atau kapasitas kendaraan
- Atribut khusus lainnya
Peringkat diurutkan berdasarkan pilihan PWT, jarak, atau garis lurus jarak dari titik penjemputan.
Perhatikan bahwa Anda harus memiliki Super User (Super User) Layanan Fleet Engine atau Consumer SDK User
hak istimewa untuk menggunakan API SearchVehicles
. Untuk informasi selengkapnya, lihat
Autentikasi dan Otorisasi.
Menggunakan SearchKendaraans API
Untuk menggunakan SearchVehicles
API:
- Buat
SearchVehiclesRequest
berdasarkan tugas yang akan ditetapkan. - Memanggil
SearchVehicles
API (vehicleService.searchVehicles
) dengan permintaan yang dibuat. - Proses
SearchVehicleResponse
yang ditampilkan dari API.
Kolom SearchKendaraansRequest
Gunakan kolom atribut wajib berikut ini untuk membuat
SearchVehiclesRequest
:
Kolom | Deskripsi |
---|---|
induk | Wajib diisi. Harus dalam penyedia format/{provider}. Penyedia harus berupa Project ID (misalnya, sample-cloud-project) dari Project Google Cloud tempat akun layanan yang melakukan panggilan ini merupakan anggota. |
vehicle_types | Wajib diisi. Jenis kendaraan yang diminta, AUTO, TWO_WHEELER, TAXI, TRUCK, bikeYCLE, atau PEDESTRIAN. |
trip_types | Wajib diisi. EKSKLUSIF (satu perjalanan aktif pada satu waktu per pengemudi) atau BERSAMA (satu atau beberapa perjalanan sekaligus per pengemudi). |
minimum_capacity | Wajib diisi. Kapasitas minimum kendaraan yang tersisa untuk tugas baru, baik untuk penumpang atau pengiriman. |
pickup_point | Wajib diisi. Lokasi pengambilan tugas dalam koordinat lintang/bujur. |
dropoff_point | Opsional. Lokasi penurunan tugas dalam koordinat lintang/bujur. Kolom ini wajib diisi jika trip_types berisi TripType.SHARED. |
pickup_radius_meters | Wajib diisi. Radius dalam meter area penelusuran kendaraan dari titik penjemputan. |
order_by | Wajib diisi. Pesan kendaraan berdasarkan salah satu opsi berikut:
|
jumlah | Wajib diisi. Jumlah maksimum kendaraan yang akan dikembalikan dari 1 hingga 50. |
Lihat dokumentasi Referensi untuk melihat rangkaian lengkap SearchVehicleRequestfields.
Contoh SearchKendaraansRequest
Bagian ini menunjukkan contoh cara membuat SearchVehiclesRequest
.
Misalnya, Anda memiliki tugas pengambilan yang akan ditugaskan di RestaurantX dan empat kendaraan:
- Kendaraan 1, yang berjarak 3.500 m dari RestaurantX.
- Kendaraan 2, yang berjarak 100 m dari RestaurantX dan memiliki perjalanan aktif dengan layanan penjemputan dan pengantaran di lokasi A dan B.
- Kendaraan 3, yang berjarak 200 m dari RestaurantX dan tersisa satu penurunan sangat jauh.
- Kendaraan 4, yang berjarak 1.000 m dari RestaurantX.
SearchVehiclesRequest
berikut menampilkan Kendaraan 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
SearchVehiclesRequest
berikut menampilkan Kendaraan 3 dan 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
SearchVehiclesRequest
berikut menampilkan Kendaraan 2, 3, dan 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
Kolom SearchKendaraansResponse
SearchVehiclesResponse
terdiri dari daftar entity VehicleMatch
,
diberi peringkat berdasarkan atribut order_by yang ditentukan di SearchVehiclesRequest
.
Setiap entity VehicleMatch
memiliki kolom berikut:
Kolom | Deskripsi |
---|---|
kendaraan | Objek Vehicle , termasuk atribut Vehicle_id dan Vehicle . |
vehicle_pickup_eta | PWT kendaraan di lokasi pengambilan tugas baru. Ini adalah PWT mengemudi. |
vehicle_pickup_distance_meter | Jarak dalam meter antara kendaraan dan lokasi penjemputan tugas baru. |
vehicle_pickup_straight_line_distance_meter | Jarak garis lurus dalam meter antara kendaraan dan lokasi penjemputan tugas baru. |
vehicle_dropoff_eta | Stempel waktu PWT kendaraan di lokasi pengambilan tugas baru. Perhatikan bahwa PWT adalah PWT mengemudi. |
vehicle_trips_waypoints | Daftar titik jalan yang tersisa, termasuk titik penjemputan dan penurunan, untuk perjalanan aktif yang saat ini ditetapkan untuk kendaraan. |
vehicle_match_type | Jenis perjalanan kendaraan, EXCLUSIVE, BACK_TO_BACK, CARPOOL, atau CARPOOL_BACK_TO_BACK. |
Contoh SearchKendaraan
Contoh berikut menunjukkan cara menggunakan SearchVehicles
API:
static final String PROJECT_ID = "project-id";
VehicleServiceBlockingStub vehicleService =
VehicleService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
SearchVehiclesRequest searchVehiclesRequest = SearchVehiclesRequest.newBuilder()
.setParent(parent)
.setPickupPoint( // Grand Indonesia East Mall
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint( // Balai Sidang Jkt Convention Center
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.213796).setLongitude(106.807195)))
.setPickupRadiusMeters(2000)
.setCount(10)
.setMinimumCapacity(2)
.addTripTypes(TripType.EXCLUSIVE)
.addVehicleTypes(VehicleType.newBuilder().setCategory(Category.AUTO).build())
.setCurrentTripsPresent(CurrentTripsPresent.ANY)
.setFilter("attributes.on_trip=\"false\"")
.setOrderBy(VehicleMatchOrder.PICKUP_POINT_ETA)
.build();
try {
SearchVehiclesResponse searchVehiclesResponse =
vehicleService.searchVehicles(searchVehiclesRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
List<VehicleMatch> vehicleMatches =
searchVehicleResponse.getMatchesList();
// Each VehicleMatch contains a Vehicle entity and information about the
// distance and ETA to the pickup point and drop-off point.