Để tạo một chiếc 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 Fleet Engine theo yêu cầu.
Các trường cho xe đi theo yêu cầu
Khi tạo xe 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õ cách một số trường xe ảnh hưởng đế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 về xe.
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à unknown, nhưng bạn nên đặt thành SHARED, EXCLUSIVE hoặc cả hai. Hãy xem phần Các 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ố lượng hành khách mà xe có thể chở, không bao gồm người lái xe (theo định nghĩa).vehicle_type
: Giá trị làAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
hoặcPEDESTRIAN
. Có thể dùng để lọc xe cho các lượt tìm kiếm xe. Điều này cũng ảnh hưởng đến thời gian đến dự kiến và cách tính toán tuyến đường. Fleet Engine cung cấp các tuyến đường và thông tin tính toán về chuyến đi 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
,TAXI
hoặcTRUCK
: ví dụ: đường cao tốc.TWO_WHEELER
: ví dụ: sẽ không trả về những tuyến đường mà xe 2 bánh không được phép đi.BICYCLE
: ví dụ: đường dành cho xe đạp.PEDESTRIAN
: ví dụ: cầu và lối đi bộ 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 một chiếc xe, hãy xem phần Cập nhật các trường của xe.
Ví dụ về việc tạo xe
Giá trị mà CreateVehicle
trả về 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"}]
}
EOM
Xem tài liệu tham khảo providers.vehicles.create.