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

Để tạo xe trong Fleet Engine cho các chuyến đi theo yêu cầu, hãy sử dụng CreateVehicle điểm cuối có 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ánh đồng cho xe du lịch theo yêu cầu

Khi tạo xe cho những 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 tìm hiểu tác động của một số trường xe nhất định đến các trong Fleet Engine. Hãy xem bài viết Cập nhật các trường về xe để biết yêu cầu đó.

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 thông tin về xe.
  • supported_trip_types: Giá trị mặc định là không xác định, nhưng nên đặt thành CHIA SẺ, ĐỘC QUYỀN hoặc cả hai. Xem Loại chuyến đi trong phần 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ở, loại trừ trình điều khiển (theo định nghĩa).
  • vehicle_type: Giá trị là AUTO, TAXI, TRUCK, TWO-WHEELER, BICYCLE hoặc PEDESTRIAN. Có thể dùng để lọc phương tiện cho xe tìm kiếm. Đ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. Động cơ đội tàu cung cấp các tuyến đường và tính toán đi lại tương ứng với phương thức dựa trên các nhóm loại phương tiện sau:
    • AUTO, TAXI hoặc TRUCK: ví dụ như đường cao tốc.
    • TWO_WHEELER: chẳng hạn như sẽ không trả về các tuyến đường không dành cho xe mô tô 2 bánh được phép.
    • BICYCLE: ví dụ như đường dành cho xe đạp.
    • PEDESTRIAN: chẳng hạn như cầu chỉ dành cho người đi bộ và lối đi bộ.

Các trường khác

Để biết những trường khác mà bạn có thể thiết lập khi tạo xe, hãy xem phần Cập nhật xe .

Ví dụ về việc tạo xe

Giá trị được 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.

Kiến trúc chuyển trạng thái đại diện (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

Hãy xem tài liệu tham khảo providers.vehicles.create.

Các bước tiếp theo