Để tạo một xe trong Fleet Engine cho các chuyến đi theo yêu cầu, hãy sử dụng điểm cuối CreateVehicle với CreateVehicleRequest. Điểm cuối này yêu cầu một tài khoản có vai trò Quản trị viên theo yêu cầu của Fleet Engine.
Các trường cho xe trong chuyến đi theo yêu cầu
Khi tạo phương tiện cho các chuyến đi theo yêu cầu, bạn phải đặt các trường bắt buộc. Bạn cũng nên nắm rõ mức độ ảnh hưởng của một số trường xe đến các chức năng khác trong Fleet Engine. Hãy xem phần Cập nhật các trường của xe để biết thông tin về việc này.
Các trường bắt buộc đối với chuyến đi theo yêu cầu
vehicle_state: Mặc định là không xác định, nhưng phải được đặt thành ONLINE hoặc OFFLINE. Xem thông tin về cách đặt trường trạng thái xe trong phần Cập nhật các trường của xe.supported_trip_types: Mặc định là không xác định, nhưng phải được đặt thành SHARED, EXCLUSIVE hoặc cả hai. Hãy xem phần Loại chuyến đi trong hướng dẫn về Chuyến đi theo yêu cầu để biết thông tin chi tiết.maximum_capacity: Số hành khách mà xe có thể chở, không bao gồm tài xế (theo định nghĩa).vehicle_type: Giá trị làAUTO,TAXI,TRUCK,TWO_WHEELER,BICYCLEhoặcPEDESTRIAN. Có thể dùng để lọc xe khi tìm kiếm xe. Điều này cũng ảnh hưởng đến việc tính toán thời gian đến dự kiến và tuyến đường. Công cụ quản lý đội xe cung cấp các tuyến đường và thông tin tính toán về hành trình tương ứng với phương thức di chuyển dựa trên các nhóm loại xe sau:AUTO,TAXIhoặcTRUCK: ví dụ: đường cao tốc.TWO_WHEELER: ví dụ: sẽ không trả về các tuyến đường không cho phép xe hai bánh.BICYCLE: ví dụ: đường dành cho xe đạp.PEDESTRIAN: ví dụ: cầu và lối đi chỉ dành cho người đi bộ.
Các trường khác
Để biết các trường khác mà bạn có thể đặt khi tạo xe, hãy xem phần Cập nhật các trường của xe.
Ví dụ về cách tạo xe
Để tạo một phương tiện, bạn có thể sử dụng thư viện gRPC Java hoặc REST. Để xem danh sách đầy đủ các ngôn ngữ được hỗ trợ, hãy xem bài viết Thư viện ứng dụng cho dịch vụ chuyến đi theo yêu cầu.
Giá trị được trả về từ CreateVehicle là thực thể Vehicle đã tạo.
Java
static final String PROJECT_ID = "project-id";
VehicleServiceBlockingStub vehicleService =
VehicleService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Vehicle vehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.OFFLINE) // Initial state
.addSupportedTripTypes(TripType.EXCLUSIVE)
.setMaximumCapacity(4)
.setVehicleType(VehicleType.newBuilder().setCategory(VehicleType.Category.AUTO))
.addAttributes(VehicleAttribute.newBuilder()
.setKey("on_trip").setValue("false")) // Opaque to the Fleet Engine
// Add .setBackToBackEnabled(true) to make this vehicle eligible for trip
// matching while even if it is on a trip. By default this is disabled.
.build();
CreateVehicleRequest createVehicleRequest =
CreateVehicleRequest.newBuilder() // no need for the header
.setParent(parent)
.setVehicleId("vid-8241890") // Vehicle ID assigned by Rideshare or Delivery Provider
.setVehicle(vehicle) // Initial state
.build();
// In this case, the Vehicle is being created in the OFFLINE state and
// no initial position is being provided. When the Driver App checks
// in with the Rideshare or Delivery Provider, the state can be set to ONLINE and
// the Driver App will update the Vehicle Location.
try {
Vehicle createdVehicle =
vehicleService.createVehicle(createVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle created successfully.
REST
curl -X POST \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles?vehicleId=vid-8241890" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "OFFLINE",
"supportedTripTypes": ["EXCLUSIVE"],
"maximumCapacity": 4,
"vehicleType": {"category": "AUTO"},
"attributes": [{"key": "on_trip", "value": "false"}]
}
EOMXem tài liệu tham khảo về providers.vehicles.create.