ความสามารถในการวางแผนเส้นทางและการจัดส่งช่วยให้คุณค้นหาคนขับรถที่อยู่ใกล้เคียงได้ด้วยโซลูชัน SearchVehicles
API ซึ่งเป็นส่วนหนึ่งของโซลูชันการโดยสารและการจัดส่งแบบออนดีมานด์
SearchVehicles
API ช่วยให้คุณสามารถค้นหาผู้ขับขี่ที่อยู่ใกล้เคียงซึ่งพร้อมให้บริการในแอป
โซลูชันการโดยสารและการนำส่งแบบออนดีมานด์สำหรับผู้ใช้ทั่วไปที่เหมาะกับงานต่างๆ เช่น การเดินทางหรือการขอให้นำส่งสินค้า SearchVehicles
API จะแสดงรายการผู้ขับขี่ที่มีการจัดอันดับตรงกับแอตทริบิวต์ของงานกับแอตทริบิวต์ของยานพาหนะในยานพาหนะของคุณ
แอตทริบิวต์ของงานอาจรวมถึงสิ่งต่อไปนี้
- จุดรับและส่ง
- ประเภทยานพาหนะและการเดินทางที่ขอ
- ความจุที่ต้องการ
- แอตทริบิวต์การจับคู่อื่นๆ ที่จำเป็น
แอตทริบิวต์ของยานพาหนะอาจรวมถึงสิ่งต่อไปนี้
- ตำแหน่งสุดท้ายของยานพาหนะที่ทราบ
- สถานะ ประเภท หรือความจุของรถ
- แอตทริบิวต์ที่กำหนดเองอื่นๆ
ระบบจะจัดอันดับตามเวลาถึงโดยประมาณ ระยะทาง หรือระยะทางในแนวตรงจากจุดรับสินค้า
โปรดทราบว่าคุณต้องมีสิทธิ์ของผู้ใช้ระดับสูงของบริการ Fleet Engine หรือผู้ใช้ SDK สำหรับผู้บริโภคเพื่อใช้ 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 คน) หรือ SHARED (การเดินทางครั้งละ 1 ครั้งหรือหลายการเดินทางต่อคนขับ 1 คน) |
minimum_capacity | ต้องระบุ ความจุต่ำสุดของยานพาหนะสำหรับงานใหม่ ทั้งสำหรับผู้โดยสารหรือการนำส่ง |
pickup_point | ต้องระบุ ตำแหน่งรับงานในพิกัดละติจูด/ลองจิจูด |
dropoff_point | ไม่บังคับ ตำแหน่งส่งคืนงานในพิกัดละติจูด/ลองจิจูด ต้องช่องนี้หาก TripType มี TripType.SHARED |
pickup_radius_meters | ต้องระบุ รัศมีหน่วยเป็นเมตรของพื้นที่ค้นหายานพาหนะจากจุดรับสินค้า |
order_by | ต้องระบุ สั่งซื้อยานพาหนะตามรายการใดรายการหนึ่งต่อไปนี้
|
จำนวน | ต้องระบุ จำนวนสูงสุดของยานพาหนะที่ต้องส่งคืนตั้งแต่ 1 ถึง 50 คัน |
ดูเอกสารอ้างอิงเพื่อดูชุดทั้งหมดของ SearchVehicleRequestfields
ตัวอย่าง SearchVehiclesRequest
ส่วนนี้จะแสดงตัวอย่างวิธีสร้าง SearchVehiclesRequest
ตัวอย่างเช่น สมมติว่าคุณมีงานไปรับที่ RestaurantX และรถ 4 คัน
- ยานพาหนะ 1 อยู่ห่างจาก RestaurantX 3, 500 ม.
- ยานพาหนะ 2 ที่อยู่ห่างจาก RestaurantX เพียง 100 ม. ซึ่งกำลังเดินทางโดยมีจุดรับส่งที่สถานที่ A และ B
- Vehicle 3 ซึ่งอยู่ห่างจาก RestaurantX 200 ม. และส่งคืนรถอีก 1 คันที่ไกลมาก
- ยานพาหนะ 4 อยู่ห่างจาก RestaurantX 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 รวมถึงแอตทริบิวต์ car_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
ตัวอย่างต่อไปนี้แสดงวิธีใช้ API ของ SearchVehicles
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.