Sebagai bagian dari layanan perjalanan on-demand Mobility, Anda dapat menemukan kendaraan di sekitar
menggunakan metode SearchVehicles
.
Metode SearchVehicles
memungkinkan Anda menemukan kendaraan di sekitar yang tersedia di
aplikasi seluler konsumen yang paling cocok untuk transportasi atau pengantaran tertentu
permintaan. SearchVehicles
API menampilkan daftar kendaraan yang diurutkan
cocok dengan atribut perjalanan yang diminta. Peringkat diurutkan menurut
pilihan PWT, jarak, atau jarak garis lurus dari titik penjemputan.
Atribut Penelusuran | Atribut Kendaraan |
---|---|
|
|
Menggunakan metode SearchVehicles
Untuk menggunakan SearchVehicles
, ikuti proses umum berikut:
- Buat
SearchVehiclesRequest
berdasarkan perjalanan 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 dari Project Google Cloud tempat akun layanan yang melakukan panggilan ini menjadi 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 perjalanan baru, baik untuk penumpang atau 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 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. |
Filter | Opsional. Kueri filter yang akan diterapkan saat menelusuri kendaraan. |
Lihat dokumentasi Referensi untuk melihat rangkaian lengkap SearchVehicleRequest.
Skenario SearchKendaraansRequest
Bagian ini menunjukkan contoh cara membuat SearchVehiclesRequest
.
Misalnya, seorang pelanggan ingin dijemput di RestaurantX, dan Anda memiliki empat kendaraan:
- Kendaraan 1: 3.500 m dari RestaurantX.
- Kendaraan 2: 100 m dari RestaurantX dengan perjalanan aktif dengan penjemputan dan pengantaran ke lokasi A dan B.
- Kendaraan 3: 200 m dari RestaurantX dan tersisa satu penurunan jauh.
- Kendaraan 4: 1.000 m dari RestaurantX.
Tabel berikut menampilkan berbagai permintaan oleh kendaraan yang dikembalikan.
Menampilkan Kendaraan 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
Pengembalian Kendaraan 3 dan 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
Mengembalikan 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
, yang diberi peringkat berdasarkan atribut order_by yang ditentukan di SearchVehiclesRequest
. Masing-masing
Entity VehicleMatch
memiliki kolom berikut:
Kolom | Deskripsi |
---|---|
kendaraan | Objek Vehicle , termasuk atribut Vehicle_id dan Vehicle . |
vehicle_pickup_eta | PWT kendaraan di lokasi pengambilan perjalanan baru. Ini adalah PWT mengemudi. |
vehicle_pickup_distance_meter | Jarak dalam meter antara kendaraan dan lokasi penjemputan untuk perjalanan baru. |
vehicle_pickup_straight_line_distance_meter | Jarak garis lurus dalam meter antara kendaraan dan lokasi penjemputan perjalanan baru. |
vehicle_dropoff_eta | Stempel waktu PWT kendaraan di lokasi penjemputan untuk perjalanan 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. |
Untuk mengetahui 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 khusus untuk kendaraan, dan
tidak dapat digunakan untuk kolom lain. Saat digunakan dalam penelusuran yang menyertakan kolom lain
kriteria, seperti minimum_capacity
atau vehicle_types
, kueri filter
berfungsi sebagai klausa AND
.
Misalnya, jika Anda menelusuri kendaraan yang memiliki kapasitas minimum 6 penumpang dan
filter attributes
seperti ramah hewan peliharaan, kriteria Anda hanya akan menampilkan
kendaraan yang keduanya ramah hewan peliharaan dan dapat mengangkut setidaknya 6 penumpang.
Untuk sintaksis kueri filter, lihat AIP-160 untuk contoh. Untuk mengetahui detail tentang cara membuat atribut kendaraan, lihat Kendaraan atribut dalam panduan Perbarui kolom kendaraan.
Contoh SearchKendaraan
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.