Tạo một chiếc xe cho các chuyến đi theo yêu cầu

Để tạo xe trong Công cụ xe 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 tài khoản có vai trò Quản trị viên theo yêu cầu của Công cụ quản lý đội xe.

Cánh đồng cho xe du lịch theo yêu cầu

Khi tạo xe cho các chuyến đi theo yêu cầu, bạn phải thiết lập 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 nhất định đến các chức năng khác trong Công cụ quản lý đội xe. Hãy xem bài viết Cập nhật các trường xe để biết thông tin đó.

Các trường bắt buộc cho chuyến đi theo yêu cầu

  • vehicle_state: Giá trị mặc định là không xác định, nhưng nên đặt thành TRỰC TUYẾN hoặc NGOẠI TUYẾN. Xem thông tin về cách thiết lập trường trạng thái xe trong phần Cập nhật trường xe.
  • supported_trip_types: Mặc định là không xác định, nhưng bạn nên đặt thành SHARED (CHIA SẺ), EXCLUSIVE (ĐỘC QUYỀN) 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ố 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ặc PEDESTRIAN. Có thể dùng để lọc xe để tìm kiếm xe. Điều này cũng ảnh hưởng đến việc tính toán tuyến đường và giờ đến dự kiến. Fleet Engine cung cấp các tuyến đường và phép tính về hành trình di chuyển tương ứng với phương tiện di chuyển dựa trên các nhóm loại xe sau:
    • AUTO, TAXI hoặc TRUCK: ví dụ: đường cao tốc.
    • TWO_WHEELER: chẳng hạn như sẽ không trả về các tuyến đường không cho phép xe mô tô 2 bánh.
    • BICYCLE: ví dụ: đường dành cho xe đạp.
    • PEDESTRIAN: ví dụ: cầu và lối đi dành riêng 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 xe.

Ví dụ về cách tạo xe

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"}]
}
EOM

Xem tài liệu tham khảo providers.vehicles.create.

Bước tiếp theo