Nằm trong Giải pháp gọi xe và giao hàng theo yêu cầu của bạn, chức năng Lập kế hoạch và điều phối tuyến đường cho phép bạn tìm thấy các tài xế ở gần bằng cách cung cấp API SearchVehicles
.
API SearchVehicles
giúp bạn tìm thấy các tài xế đang có mặt ở gần trong ứng dụng dành cho người dùng sử dụng Giải pháp gọi xe và giao hàng theo yêu cầu, phù hợp nhất với một công việc như gọi xe hoặc yêu cầu giao hàng. API SearchVehicles
trả về một danh sách xếp hạng gồm những người lái xe phù hợp với các thuộc tính nhiệm vụ với các thuộc tính của xe trong nhóm xe của bạn.
Các thuộc tính của việc cần làm có thể bao gồm:
- Địa điểm nhận và trả xe
- Loại chuyến đi và phương tiện được yêu cầu
- Dung lượng bắt buộc
- Các thuộc tính so khớp bắt buộc khác
Các thuộc tính về xe có thể bao gồm:
- Vị trí xác định gần đây nhất của một chiếc xe
- Trạng thái, loại hoặc sức chứa của xe
- Các thuộc tính tuỳ chỉnh khác
Thứ hạng được sắp xếp theo thời gian đến dự kiến, khoảng cách hoặc khoảng cách theo đường thẳng tính từ điểm đón.
Xin lưu ý rằng bạn phải có các đặc quyền của Người dùng siêu người dùng hoặc Người dùng SDK tiêu dùng của Fleet Engine Service để sử dụng API SearchVehicles
. Để biết thêm thông tin, hãy xem phần Xác thực và uỷ quyền.
Sử dụng API Searchvehicles
Cách sử dụng API SearchVehicles
:
- Tạo
SearchVehiclesRequest
dựa trên việc cần làm được giao. - Gọi API
SearchVehicles
(vehicleService.searchVehicles
) bằng yêu cầu đã tạo. - Xử lý
SearchVehicleResponse
được trả về từ API.
Các trường SearchvehiclesRequest
Hãy sử dụng các trường thuộc tính bắt buộc sau để tạo SearchVehiclesRequest
:
Kỹ thuật | Nội dung mô tả |
---|---|
parent | Bắt buộc. Phải ở định dạng nhà cung cấp/{provider}. Nhà cung cấp phải là Mã dự án (ví dụ: dự án trên đám mây mẫu) của Dự án trên Google Cloud mà tài khoản dịch vụ thực hiện lệnh gọi này là thành viên. |
vehicle_types | Bắt buộc. Các loại phương tiện được yêu cầu: XE Ô TÔ, HAI_WHEELER, TAXI, XE TẢI, XE ĐẠP hoặc Xe ĐI BỘ. |
trip_types | Bắt buộc. ĐỘC QUYỀN (một chuyến đi đang hoạt động tại một thời điểm cho mỗi tài xế) hoặc CHIA SẺ (một hoặc nhiều chuyến đi cùng một lúc cho mỗi tài xế). |
minimum_capacity | Bắt buộc. Sức chứa tối thiểu còn lại của xe khi thực hiện một nhiệm vụ mới, cho hành khách hoặc hàng giao. |
pickup_point | Bắt buộc. Vị trí đón của công việc theo toạ độ vĩ độ/kinh độ. |
dropoff_point | Không bắt buộc. Vị trí thả của tác vụ theo toạ độ vĩ độ/kinh độ. Đây là trường bắt buộc nếu Trip_types chứa TripType.SHARED. |
pickup_radius_meters | Bắt buộc. Bán kính tính theo mét của khu vực tìm xe tính từ điểm đón. |
order_by | Bắt buộc. Đặt mua xe theo một trong những cách sau:
|
số lượng | Bắt buộc. Số lượng xe tối đa được phép quay về từ 1 đến 50. |
Hãy tham khảo Tài liệu tham khảo để xem toàn bộ SearchVehicleRequestfields.
Ví dụ về SearchvehiclesRequest
Phần này trình bày các ví dụ về cách tạo SearchVehiclesRequest
.
Ví dụ: giả sử bạn giao một nhiệm vụ đến lấy hàng tại RestaurantX và 4 chiếc xe:
- Xe 1, cách RestaurantX 3500 m.
- Phương tiện 2, cách RestaurantX 100 m và có một chuyến đi đang diễn ra bằng cách đón và trả khách tại vị trí A và B.
- Xe 3, cách RestaurantX 200m và có một điểm dừng xe còn lại rất xa.
- Xe 4, cách RestaurantX 1.000 m.
SearchVehiclesRequest
sau đây trả về Xe 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
SearchVehiclesRequest
sau đây trả về Xe 3 và 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
SearchVehiclesRequest
sau đây trả về Xe 2, 3 và 4:
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
Các trường SearchvehiclesResponse
SearchVehiclesResponse
bao gồm danh sách các thực thể VehicleMatch
, được xếp hạng theo thuộc tính order_by (theo thứ tự) đã chỉ định trong SearchVehiclesRequest
.
Mỗi thực thể VehicleMatch
có các trường sau:
Kỹ thuật | Nội dung mô tả |
---|---|
xe cộ | Đối tượng Vehicle , bao gồm cả các thuộc tính xe_id và Vehicle . |
vehicle_pickup_eta | Giờ đến dự kiến của xe tại vị trí đến lấy hàng của nhiệm vụ mới. Đây là thời gian đến dự kiến khi lái xe. |
vehicle_pickup_distance_meter | Khoảng cách tính bằng mét giữa xe và vị trí đón của nhiệm vụ mới. |
vehicle_pickup_straight_line_distance_meter | Khoảng cách theo đường thẳng tính bằng mét giữa xe và vị trí đón của nhiệm vụ mới. |
vehicle_dropoff_eta | Dấu thời gian của thời gian đến dự kiến của xe tại vị trí đón của việc cần làm mới. Xin lưu ý rằng ETA là thời gian đến với hoạt động lái xe. |
vehicle_trips_waypoints | Danh sách các điểm tham chiếu còn lại, bao gồm cả điểm đón và trả khách cho các chuyến đi đang hoạt động hiện được chỉ định cho xe. |
vehicle_match_type | Loại chuyến đi của xe: EXCLUSIVE, BACK_TO_BACK, CARPOOL hoặc CARPOOL_BACK_TO_BACK. |
Ví dụ về Searchvehicles
Ví dụ sau đây trình bày cách sử dụng 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.