Sebagai bagian dari layanan perjalanan Mobility on-demand, Anda dapat menemukan kendaraan terdekat
dengan menggunakan metode SearchVehicles
.
Metode SearchVehicles
memungkinkan Anda menemukan kendaraan terdekat yang tersedia di aplikasi seluler konsumen Anda yang paling cocok untuk perjalanan atau permintaan pengiriman tertentu. SearchVehicles
API menampilkan daftar kendaraan yang diberi peringkat yang atributnya cocok dengan atribut perjalanan yang diminta. Peringkat diurutkan berdasarkan pilihan Anda, yaitu perkiraan waktu tiba, jarak, atau jarak garis lurus dari titik pengambilan.
Atribut Penelusuran | Atribut Kendaraan |
---|---|
|
|
Gunakan metode SearchVehicles
Untuk menggunakan SearchVehicles
, ikuti proses umum berikut:
- Buat
SearchVehiclesRequest
berdasarkan perjalanan yang akan ditetapkan. - Panggil
SearchVehicles
API (vehicleService.searchVehicles
) dengan permintaan yang dibuat. - Proses
SearchVehicleResponse
yang ditampilkan dari API.
Kolom SearchVehiclesRequest
Gunakan kolom atribut wajib diisi berikut untuk membuat
SearchVehiclesRequest
:
Kolom | Deskripsi |
---|---|
induk | Wajib diisi. Harus dalam format providers/{provider}. Penyedia harus berupa Project ID Project Google Cloud yang akun layanannya melakukan panggilan ini. |
vehicle_types | Wajib diisi. Jenis kendaraan yang diminta, baik AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE, atau PEDESTRIAN. |
trip_types | Wajib diisi. EXCLUSIVE (satu perjalanan aktif dalam satu waktu per pengemudi) atau SHARED (satu atau beberapa perjalanan dalam satu waktu per pengemudi). |
minimum_capacity | Wajib diisi. Kapasitas minimum yang tersisa dari kendaraan untuk perjalanan baru, baik untuk penumpang maupun pengiriman. |
pickup_point | Wajib diisi. Lokasi penjemputan perjalanan dalam koordinat lintang/bujur. |
dropoff_point | Opsional. Lokasi pengantaran perjalanan dalam koordinat lintang/bujur. Kolom ini wajib diisi jika trip_types berisi TripType.SHARED. |
pickup_radius_meters | Wajib diisi. Radius area penelusuran kendaraan dalam meter dari titik penjemputan. |
order_by | Wajib diisi. Urutkan kendaraan berdasarkan salah satu dari berikut ini:
|
jumlah | Wajib diisi. Jumlah maksimum kendaraan yang akan ditampilkan dari 1 hingga 50. |
filter | Opsional. Kueri filter yang akan diterapkan saat menelusuri kendaraan. |
maximum_staleness | Opsional. Membatasi penelusuran hanya pada kendaraan yang telah mengirimkan update lokasi ke Fleet Engine dalam durasi yang ditentukan. Jika kolom ini tidak disetel, server akan menggunakan lima menit sebagai nilai default. |
Lihat dokumentasi Referensi untuk melihat kumpulan lengkap kolom SearchVehicleRequest.
Skenario SearchVehiclesRequest
Bagian ini menunjukkan contoh cara membuat SearchVehiclesRequest
.
Misalnya, pelanggan ingin dijemput di RestaurantX, dan Anda memiliki empat kendaraan:
- Kendaraan 1: Berjarak 3.500 m dari RestaurantX.
- Kendaraan 2: Berjarak 100 m dari RestaurantX dengan perjalanan aktif dengan penjemputan dan pengantaran di lokasi A dan B.
- Kendaraan 3: Berjarak 200 m dari RestaurantX dengan satu pengantaran yang tersisa sangat jauh.
- Kendaraan 4: Berjarak 1000 m dari RestaurantX.
Berikut menampilkan berbagai permintaan berdasarkan kendaraan yang menampilkannya.
Mengembalikan Kendaraan 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
Menampilkan Kendaraan 3 dan 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
Menampilkan Kendaraan 2, 3, dan 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
Kolom SearchVehiclesResponse
SearchVehiclesResponse
terdiri dari daftar entity VehicleMatch
, yang diberi peringkat
berdasarkan atribut order_by yang ditentukan dalam SearchVehiclesRequest
. Setiap entity
VehicleMatch
memiliki kolom berikut:
Kolom | Deskripsi |
---|---|
kendaraan | Objek Vehicle , termasuk atribut vehicle_id dan Vehicle . |
vehicle_pickup_eta | Perkiraan waktu kedatangan kendaraan di lokasi pengambilan jika perjalanan ini ditetapkan ke kendaraan sekarang. |
vehicle_pickup_distance_meter | Jarak dalam meter antara kendaraan dan lokasi penjemputan perjalanan baru. |
vehicle_pickup_straight_line_distance_meter | Jarak garis lurus dalam meter antara kendaraan dan lokasi penjemputan perjalanan baru. |
vehicle_dropoff_eta | Perkiraan waktu kedatangan kendaraan di lokasi pengantaran jika perjalanan ini ditetapkan ke kendaraan saat ini. |
vehicle_trips_waypoints | Daftar titik jalan yang tersisa, termasuk titik penjemputan dan pengantaran, untuk perjalanan aktif yang saat ini ditetapkan ke kendaraan. |
vehicle_match_type | Jenis perjalanan kendaraan, yaitu EXCLUSIVE, BACK_TO_BACK, CARPOOL, atau CARPOOL_BACK_TO_BACK. |
Untuk daftar lengkap kolom VehicleMatch
, lihat:
VehicleMatch message
(gRPC)VehicleMatch resource
(REST)
Menggunakan kueri filter
SearchVehicles
dan ListVehicles
mendukung pemfilteran pada atribut kendaraan menggunakan kueri filter.
Kueri filter HANYA mendukung pemfilteran pada atribut kustom untuk kendaraan, dan
tidak dapat digunakan untuk kolom lain. Jika digunakan dalam penelusuran yang menyertakan kriteria kolom lain, seperti minimum_capacity
atau vehicle_types
, kueri filter berfungsi sebagai klausa AND
.
Misalnya, jika Anda menelusuri kendaraan yang memiliki kapasitas minimum 6 dan memfilter attributes
seperti ramah hewan peliharaan, kriteria Anda hanya akan menampilkan kendaraan yang ramah hewan peliharaan dan dapat mengangkut setidaknya 6 penumpang.
Untuk sintaksis kueri filter, lihat AIP-160 untuk contohnya. Untuk mengetahui detail tentang cara membuat atribut kendaraan, lihat Kolom atribut kendaraan di panduan Memperbarui kolom kendaraan.
Contoh SearchVehicles
Contoh berikut menunjukkan cara menggunakan SearchVehicles
API menggunakan
library gRPC Java.
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.