คุณสามารถค้นหายานพาหนะที่อยู่ใกล้เคียงได้โดยใช้วิธีการ SearchVehicles
ซึ่งเป็นส่วนหนึ่งของบริการการเดินทางแบบออนดีมานด์ของ Mobility
วิธีการ SearchVehicles
ช่วยให้คุณค้นหายานพาหนะที่มีให้บริการในบริเวณใกล้เคียงในแอปบนอุปกรณ์เคลื่อนที่สำหรับผู้บริโภค ซึ่งเหมาะกับคำขอเรียกรถหรือคำขอนำส่งหนึ่งๆ มากที่สุด SearchVehicles
API จะแสดงรายการยานพาหนะที่เรียงตามลําดับ ซึ่งแอตทริบิวต์ตรงกับแอตทริบิวต์การเดินทางที่ขอ ระบบจะจัดอันดับตามตัวเลือกเวลาถึงโดยประมาณ ระยะทาง หรือระยะทางเส้นตรงจากจุดรับสินค้า
แอตทริบิวต์การค้นหา | แอตทริบิวต์ของยานพาหนะ |
---|---|
|
|
ใช้เมธอด SearchVehicles
หากต้องการใช้ SearchVehicles
ให้ทำตามขั้นตอนทั่วไปต่อไปนี้
- สร้าง
SearchVehiclesRequest
ตามการเดินทางที่จะมอบหมาย - เรียกใช้
SearchVehicles
API (vehicleService.searchVehicles
) ด้วยคําขอที่สร้างขึ้น - ประมวลผล
SearchVehicleResponse
ที่แสดงผลจาก API
ฟิลด์ SearchVehiclesRequest
ใช้ช่องแอตทริบิวต์ที่ต้องกรอกต่อไปนี้เพื่อสร้าง
SearchVehiclesRequest
ช่อง | คำอธิบาย |
---|---|
ระดับบนสุด | ต้องระบุ ต้องอยู่ในรูปแบบ providers/{provider} ผู้ให้บริการต้องเป็นรหัสโปรเจ็กต์ของโปรเจ็กต์ Google Cloud ที่บัญชีบริการที่เรียกใช้นี้เป็นสมาชิก |
vehicle_types | ต้องระบุ ประเภทยานพาหนะที่ขอ ซึ่งได้แก่ AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE หรือ PEDESTRIAN |
trip_types | ต้องระบุ เป็นแบบ "พิเศษ" (มีการเดินทางที่ใช้งานอยู่ครั้งละ 1 ครั้งต่อคนขับ) หรือ "แชร์" (มีการเดินทางที่ใช้งานอยู่ครั้งละ 1 ครั้งขึ้นไปต่อคนขับ) |
minimum_capacity | ต้องระบุ ความจุที่เหลือขั้นต่ำของยานพาหนะสำหรับการเดินทางใหม่ ไม่ว่าจะเป็นการขนส่งผู้โดยสารหรือการนำส่ง |
pickup_point | ต้องระบุ สถานที่รับของการเดินทางในพิกัดละติจูด/ลองจิจูด |
dropoff_point | ไม่บังคับ ตำแหน่งส่งผู้โดยสารของการเดินทางในพิกัดละติจูด/ลองจิจูด ต้องระบุฟิลด์นี้หาก trip_types มี TripType.SHARED |
pickup_radius_meters | ต้องระบุ รัศมี (หน่วยเป็นเมตร) ของพื้นที่ค้นหายานพาหนะจากจุดรับ |
order_by | ต้องระบุ สั่งซื้อยานพาหนะตามเกณฑ์ใดเกณฑ์หนึ่งต่อไปนี้
|
จำนวน | ต้องระบุ จำนวนยานพาหนะสูงสุดที่จะแสดงได้คือ 1-50 |
ตัวกรอง | ไม่บังคับ คําค้นหาตัวกรองที่จะใช้เมื่อค้นหายานพาหนะ |
โปรดดูเอกสารอ้างอิงเพื่อดูชุดฟิลด์ SearchVehicleRequest ทั้งหมด
สถานการณ์ SearchVehiclesRequest
ส่วนนี้จะแสดงตัวอย่างวิธีสร้าง SearchVehiclesRequest
ตัวอย่างเช่น สมมติว่าลูกค้าต้องการรับรถที่ร้านอาหาร X และคุณมียานพาหนะ 4 คัน
- ยานพาหนะ 1: อยู่ห่างจาก RestaurantX 3500 เมตร
- ยานพาหนะ 2: อยู่ห่างจาก RestaurantX 100 เมตร โดยมีการเดินทางที่ใช้งานอยู่ซึ่งมีการไปรับและส่งที่จุด A และ B
- ยานพาหนะ 3: อยู่ห่างจาก RestaurantX 200 เมตร โดยมีจุดส่งผู้โดยสารที่เหลืออยู่ 1 จุดซึ่งอยู่ไกลมาก
- ยานพาหนะ 4: อยู่ห่างจาก RestaurantX 1,000 ม.
รายการต่อไปนี้แสดงคำขอต่างๆ ตามยานพาหนะที่แสดง
ส่งคืนยานพาหนะ 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
แสดงผลยานพาหนะ 3 และ 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
แสดงผลยานพาหนะ 2, 3 และ 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
ฟิลด์ SearchVehiclesResponse
SearchVehiclesResponse
ประกอบด้วยรายการเอนทิตี VehicleMatch
ซึ่งจัดอันดับตามแอตทริบิวต์ order_by ที่ระบุใน SearchVehiclesRequest
เอนทิตี VehicleMatch
แต่ละรายการมีช่องต่อไปนี้
ช่อง | คำอธิบาย |
---|---|
พาหนะ | ออบเจ็กต์ Vehicle ซึ่งรวมถึงแอตทริบิวต์ vehicle_id และ Vehicle |
vehicle_pickup_eta | เวลาถึงโดยประมาณของยานพาหนะ ณ สถานที่รับของการเดินทางใหม่ นี่คือเวลาถึงโดยประมาณขณะขับรถ |
vehicle_pickup_distance_meter | ระยะทางเป็นเมตรระหว่างยานพาหนะกับสถานที่รับของสำหรับการเดินทางใหม่ |
vehicle_pickup_straight_line_distance_meter | ระยะทางตรงเป็นเมตรระหว่างยานพาหนะกับสถานที่รับของสำหรับการเดินทางใหม่ |
vehicle_dropoff_eta | การประทับเวลาของเวลาถึงโดยประมาณของยานพาหนะ ณ สถานที่รับของการเดินทางใหม่ โปรดทราบว่าเวลาถึงโดยประมาณคือเวลาถึงโดยประมาณเมื่อขับรถ |
vehicle_trips_waypoints | รายการจุดแวะพักที่เหลืออยู่ รวมถึงจุดรับและจุดส่งของสำหรับการเดินทางที่ใช้งานอยู่ซึ่งกำหนดให้กับยานพาหนะ |
vehicle_match_type | ประเภทการเดินทางของยานพาหนะ ซึ่งได้แก่ EXCLUSIVE, BACK_TO_BACK, CARPOOL หรือ CARPOOL_BACK_TO_BACK |
ดูรายการช่อง VehicleMatch
ทั้งหมดได้ที่
VehicleMatch message
(gRPC)VehicleMatch resource
(REST)
ใช้คำสั่งตัวกรอง
SearchVehicles
และ ListVehicles
รองรับการกรองแอตทริบิวต์ยานพาหนะโดยใช้ข้อความค้นหาตัวกรอง
การค้นหาตัวกรองรองรับเฉพาะการกรองแอตทริบิวต์ที่กำหนดเองสำหรับยานพาหนะเท่านั้น และจะใช้กับช่องอื่นๆ ไม่ได้ เมื่อใช้ในการค้นหาที่มีเกณฑ์ฟิลด์อื่นๆ เช่น minimum_capacity
หรือ vehicle_types
คําค้นหาตัวกรองจะทํางานเป็นประโยค AND
เช่น หากคุณค้นหายานพาหนะที่จุคนได้ขั้นต่ำ 6 คนและกรอง attributes
เช่น สัตว์เลี้ยงเข้าพักได้ เกณฑ์จะแสดงเฉพาะยานพาหนะที่ทั้งรองรับสัตว์เลี้ยงและสามารถบรรทุกผู้โดยสารได้อย่างน้อย 6 คน
ดูตัวอย่างไวยากรณ์การค้นหาตัวกรองได้ที่ AIP-160 โปรดดูรายละเอียดเกี่ยวกับการสร้างแอตทริบิวต์ยานพาหนะได้ที่ฟิลด์แอตทริบิวต์ยานพาหนะในคู่มืออัปเดตฟิลด์ยานพาหนะ
ตัวอย่าง SearchVehicles
ตัวอย่างต่อไปนี้แสดงวิธีใช้ SearchVehicles
API โดยใช้ไลบรารี 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.