ในโซลูชันการโดยสารและการนำส่งแบบออนดีมานด์ การวางแผนและการจัดส่งเส้นทาง
ช่วยให้คุณค้นหาผู้ขับขี่ที่อยู่ใกล้เคียงได้โดยให้ SearchVehicles
API
SearchVehicles
API ช่วยให้คุณค้นหาคนขับรถใกล้เคียงที่ใช้ได้ใน
แอปสำหรับผู้บริโภคที่ใช้โซลูชันการโดยสารและการนำส่งแบบออนดีมานด์ซึ่งเหมาะกับงานมากที่สุด
เช่น การเรียกรถหรือคำขอส่งของ SearchVehicles
API แสดงผล
รายการอันดับนักขับที่ตรงกับแอตทริบิวต์ของงานกับแอตทริบิวต์
ของยานพาหนะในยานพาหนะจำนวนมาก
แอตทริบิวต์ของงานมีดังนี้
- สถานที่รับและส่ง
- ประเภทยานพาหนะและการเดินทางที่ขอ
- ความจุที่ต้องการ
- แอตทริบิวต์การจับคู่อื่นๆ ที่จำเป็น
แอตทริบิวต์ของยานพาหนะอาจมีดังนี้
- ตำแหน่งสุดท้ายที่ทราบของยานพาหนะ
- สถานะ ประเภท หรือความจุของยานพาหนะ
- แอตทริบิวต์ที่กำหนดเองอื่นๆ
การจัดอันดับจะเรียงลำดับตาม ETA ระยะทาง หรือเส้นตรงที่คุณเลือก ระยะห่างจากจุดรับ
โปรดทราบว่าคุณต้องมีผู้ใช้ระดับสูงของบริการ Fleet Engine หรือผู้ใช้ SDK สำหรับผู้บริโภค
สิทธิ์การใช้ SearchVehicles
API สำหรับข้อมูลเพิ่มเติม โปรดดู
การตรวจสอบสิทธิ์และการให้สิทธิ์
การใช้ SearchVehicles API
วิธีใช้ SearchVehicles
API
- สร้าง
SearchVehiclesRequest
ตามงานที่จะมอบหมาย - เรียกใช้
SearchVehicles
API (vehicleService.searchVehicles
) ด้วยคำขอที่สร้างขึ้น - ประมวลผล
SearchVehicleResponse
ที่แสดงผลจาก API
ช่อง SearchVehiclesRequest
ใช้ฟิลด์แอตทริบิวต์ที่ต้องระบุต่อไปนี้เพื่อสร้าง
SearchVehiclesRequest
:
ช่อง | คำอธิบาย |
---|---|
ระดับบนสุด | ต้องระบุ ต้องอยู่ในรูปแบบ 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
ตัวอย่างเช่น สมมติว่าคุณมีงานไปรับเองที่ RestaurantX และยานพาหนะ 4 คัน ได้แก่
- ยานพาหนะ 1 ซึ่งอยู่ห่างออกไป 3, 500 ม. จากร้านอาหาร X
- ยานพาหนะ 2 ซึ่งอยู่ห่างจากร้านอาหาร X ราว 100 ม. และมีการเดินทางที่ดำเนินอยู่ ด้วยการไปรับและไปส่งในสถานที่ A และ B
- ยานพาหนะ 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.