ในโซลูชันการโดยสารและการนำส่งแบบออนดีมานด์ ความสามารถในการวางแผนเส้นทางและการนำส่งจะช่วยให้คุณพบผู้ขับขี่ที่อยู่ใกล้เคียงได้ด้วยการให้บริการ SearchVehicles
API
SearchVehicles
API ช่วยให้คุณค้นหาคนขับรถในบริเวณใกล้เคียงที่พร้อมให้บริการในแอปสำหรับผู้บริโภคที่ใช้โซลูชันการโดยสารและการนำส่งแบบออนดีมานด์ซึ่งเหมาะกับงานที่สุด เช่น การเรียกรถหรือคำขอนำส่ง SearchVehicles
API จะแสดงรายการนักขับที่ได้รับการจัดอันดับที่ตรงกับแอตทริบิวต์ของงานกับแอตทริบิวต์ของยานพาหนะในกองยานพาหนะของคุณ
แอตทริบิวต์ของงานมีดังนี้
- สถานที่รับและส่ง
- ประเภทยานพาหนะและการเดินทางที่ขอ
- ความจุที่ต้องการ
- แอตทริบิวต์การจับคู่อื่นๆ ที่จำเป็น
แอตทริบิวต์ของยานพาหนะอาจมีดังนี้
- ตำแหน่งสุดท้ายที่ทราบของยานพาหนะ
- สถานะ ประเภท หรือความจุของยานพาหนะ
- แอตทริบิวต์ที่กำหนดเองอื่นๆ
การจัดอันดับจะเรียงลำดับตาม ETA ระยะทาง หรือระยะทางในเส้นตรงที่คุณเลือกจากจุดรับ
โปรดทราบว่าคุณต้องมีสิทธิ์ผู้ใช้ระดับสูงหรือผู้ใช้ SDK สำหรับผู้บริโภคของบริการ Fleet Engine เพื่อใช้ SearchVehicles
API สำหรับข้อมูลเพิ่มเติม โปรดดู
การตรวจสอบสิทธิ์และการให้สิทธิ์
การใช้ SearchVehicles API
วิธีใช้ SearchVehicles
API
- สร้าง
SearchVehiclesRequest
ตามงานที่จะมอบหมาย - เรียก
SearchVehicles
API (vehicleService.searchVehicles
) ด้วยคำขอที่สร้างขึ้น - ประมวลผล
SearchVehicleResponse
ที่แสดงผลจาก API
ช่อง SearchVehiclesRequest
ใช้ฟิลด์แอตทริบิวต์ที่ต้องระบุต่อไปนี้เพื่อสร้าง SearchVehiclesRequest
ฟิลด์ | คำอธิบาย |
---|---|
parent | ต้องระบุ ต้องอยู่ในรูปแบบ provider/{provider} ผู้ให้บริการต้องเป็นรหัสโปรเจ็กต์ (เช่น sample-cloud-project) ของโปรเจ็กต์ 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 คัน |
โปรดดูเอกสารอ้างอิงเพื่อดูชุด SearchVehicleRequestfields ทั้งหมด
ตัวอย่าง SearchVehiclesRequest
ส่วนนี้จะแสดงตัวอย่างวิธีสร้าง SearchVehiclesRequest
ตัวอย่างเช่น สมมติว่าคุณมีงานไปรับที่ร้านอาหาร X และรถ 4 คัน
- ยานพาหนะ 1 ซึ่งอยู่ห่างออกไป 3, 500 ม. จากร้านอาหาร X
- ยานพาหนะ 2 ซึ่งอยู่ห่างจากร้านอาหาร X ราว 100 ม. และมีการเดินทางที่กำลังดำเนินอยู่ โดยมีบริการไปรับและไปส่งที่สถานที่ ก. และ ข.
- ยานพาหนะ 3 ซึ่งอยู่ห่างจากร้านอาหาร X ราว 200 ม. และเหลือรถอีก 1 คันที่อยู่ไกลมาก
- ยานพาหนะ 4 ซึ่งอยู่ห่างจากร้านอาหาร 1, 000 ม.
SearchVehiclesRequest
ต่อไปนี้ส่งคืนยานพาหนะ 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
SearchVehiclesRequest
ต่อไปนี้ส่งคืนยานพาหนะ 3 และ 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
SearchVehiclesRequest
ต่อไปนี้ส่งคืนยานพาหนะ 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 |
ตัวอย่าง SearchVehicles
ตัวอย่างต่อไปนี้แสดงวิธีใช้ 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.