Nằm trong giải pháp gọi xe và giao hàng theo yêu cầu của bạn, công cụ Lập kế hoạch và điều phối tuyến đường
cho phép bạn tìm trình điều khiển lân cận bằng cách cung cấp API SearchVehicles
.
API SearchVehicles
cho phép bạn tìm thấy các trình điều khiển lân cận trong
Ứng dụng dành cho người tiêu dùng Giải pháp gọi xe và giao hàng theo yêu cầu phù hợp nhất cho một công việc
chẳng hạn 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 trình điều khiển phù hợp với các thuộc tính công việc với các thuộc tính
phương tiện trong đội 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 giờ đến dự kiến, khoảng cách hoặc đường thẳng khoảng cách từ điểm đón.
Lưu ý: Bạn phải có Người dùng cao cấp 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
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
) với yêu cầu đã tạo. - Xử lý
SearchVehicleResponse
được trả về từ API.
Các trường SearchvehiclesRequest
Sử dụng các trường thuộc tính bắt buộc sau để tạo
SearchVehiclesRequest
:
Trường | Mô tả |
---|---|
mẹ | 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 có một nhiệm vụ đến lấy hàng cần giao tại RestaurantX và 4 xe:
- Xe 1, cách RestaurantX 3500 m.
- Xe 2, cách RestaurantX 100 m và có một chuyến đi đang diễn ra bằng cách nhận và trả khách tại vị trí A và B.
- Xe 3, cách RestaurantX 200m và còn một chỗ đỗ xe 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 một danh sách các thực thể VehicleMatch
,
được xếp hạng theo thuộc tính order_by (theo thứ tự) được chỉ định trong SearchVehiclesRequest
.
Mỗi thực thể VehicleMatch
có các trường sau:
Trường | 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 thời gian đến dự kiến của xe tại vị trí đến lấy hàng của nhiệm vụ 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.