คุณสามารถค้นหายานพาหนะในบริเวณใกล้เคียงได้เป็นส่วนหนึ่งของบริการการเดินทางแบบออนดีมานด์โดยระบบเคลื่อนที่
โดยใช้เมธอด SearchVehicles
เมธอด SearchVehicles
ช่วยให้คุณค้นหายานพาหนะใกล้เคียงที่มีให้บริการใน
แอปบนอุปกรณ์เคลื่อนที่สำหรับผู้บริโภคซึ่งเหมาะกับการเดินทางหรือการจัดส่งที่เฉพาะเจาะจงที่สุด
อีกครั้ง SearchVehicles
API จะแสดงรายการยานพาหนะที่ได้รับการจัดอันดับ
ตรงกับแอตทริบิวต์การเดินทางที่ขอ การจัดอันดับจะเรียงตาม
โดยเลือกเวลาถึงโดยประมาณ ระยะทาง หรือระยะห่างเป็นเส้นตรงจากจุดรับรถ
แอตทริบิวต์การค้นหา | แอตทริบิวต์ของยานพาหนะ |
---|---|
|
|
ใช้เมธอด SearchVehicles
หากต้องการใช้ SearchVehicles
ให้ทำตามขั้นตอนทั่วไปต่อไปนี้
- สร้าง
SearchVehiclesRequest
โดยอิงตามการเดินทางที่จะกำหนดให้ - เรียกใช้
SearchVehicles
API (vehicleService.searchVehicles
) ด้วยฟังก์ชัน คำขอที่สร้างขึ้นมา - ประมวลผล
SearchVehicleResponse
ที่แสดงผลจาก API
ช่อง SearchVehiclesRequest
ใช้ฟิลด์แอตทริบิวต์ที่ต้องระบุต่อไปนี้เพื่อสร้าง
SearchVehiclesRequest
:
ช่อง | คำอธิบาย |
---|---|
ระดับบนสุด | ต้องระบุ ต้องอยู่ในรูปแบบ provider/{provider} ผู้ให้บริการต้องเป็นรหัสโปรเจ็กต์ของโปรเจ็กต์ Google Cloud ที่บัญชีบริการที่เรียกใช้นี้เป็นสมาชิกอยู่ |
vehicle_types | ต้องระบุ ประเภทยานพาหนะที่ขอ ไม่ว่าจะเป็น AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE หรือ PEDESTRIAN |
trip_types | ต้องระบุ พิเศษ (การเดินทางที่ใช้งานอยู่ 1 ครั้งต่อคนขับ 1 คนต่อคน) หรือ SHARED (1 เที่ยวต่อคนต่อคนต่อคน) |
minimum_capacity | ต้องระบุ ความจุขั้นต่ำที่เหลือของยานพาหนะสำหรับการเดินทางใหม่ ทั้งสำหรับผู้โดยสารหรือผู้รับที่นำส่ง |
pickup_point | ต้องระบุ สถานที่รับของการเดินทางในพิกัดละติจูด/ลองจิจูด |
dropoff_point | ไม่บังคับ สถานที่ส่งของการเดินทางในพิกัดละติจูด/ลองจิจูด ต้องมีช่องนี้หาก Trip_types มี TripType.SHARED |
pickup_radius_meters | ต้องระบุ รัศมีเป็นเมตรของพื้นที่ค้นหายานพาหนะจากจุดรับ |
order_by | ต้องระบุ สั่งซื้อยานพาหนะโดยใช้สิ่งใดสิ่งหนึ่งต่อไปนี้
|
จำนวน | ต้องระบุ จำนวนยานพาหนะสูงสุดสำหรับการคืนสินค้าตั้งแต่ 1 ถึง 50 คัน |
ตัวกรอง | ไม่บังคับ คำค้นหาตัวกรองที่จะใช้เมื่อค้นหายานพาหนะ |
โปรดดูเอกสารประกอบอ้างอิงเพื่อดูข้อมูลทั้งชุดของ SearchVehicleRequest
สถานการณ์ SearchVehiclesRequest
ส่วนนี้จะแสดงตัวอย่างวิธีสร้าง SearchVehiclesRequest
ตัวอย่างเช่น สมมติว่าลูกค้าต้องการให้ไปรับที่ RestaurantX และคุณมียานพาหนะ 4 คัน ได้แก่
- ยานพาหนะที่ 1: ห่างจากร้านอาหาร X ประมาณ 3,500 ม.
- ยานพาหนะที่ 2: อยู่ห่างจากร้านอาหาร 100 ม. ซึ่งมีบริการไปรับที่ร้าน แล้วไปส่งสถานที่ A และ B
- ยานพาหนะหมายเลข 3: ห่างจากร้านอาหาร X อีก 200 ม. โดยรถที่จอดอีก 1 คันที่เหลือ ห่างไกลสุดๆ
- ยานพาหนะ 4: ห่างจากร้านอาหาร 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 รวมถึงแอตทริบิวต์พาหนะ_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
(พัก)
ใช้ตัวกรองการค้นหา
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.