Как создать автомобиль для поездок по запросу

Чтобы создать транспортное средство в Fleet Engine для поездок по запросу, используйте конечную точку CreateVehicle с CreateVehicleRequest. Для этой конечной точки требуется аккаунт с ролью Fleet Engine On-demand Admin (Администратор Fleet Engine по запросу).

Поля для транспортных средств, выполняющих поездки по запросу

При создании транспортных средств для поездок по запросу необходимо заполнить обязательные поля. Вы также должны знать, как определенные поля транспортных средств влияют на другие функции Fleet Engine. Подробнее о том, как обновить поля транспортного средства…

Обязательные поля для поездок по запросу

  • vehicle_state: по умолчанию – неизвестно, но должно быть установлено значение ONLINE или OFFLINE. Подробнее о том, как задать поле состояния транспортного средства…
  • supported_trip_types – по умолчанию используется значение "Неизвестно", но должно быть задано значение SHARED, EXCLUSIVE или оба. Подробную информацию вы найдете в разделе Типы поездок руководства Поездки по запросу.
  • maximum_capacity – количество пассажиров, которое может перевозить транспортное средство (не считая водителя).
  • vehicle_type: значения AUTO, TAXI, TRUCK, TWO_WHEELER, BICYCLE или PEDESTRIAN. Может использоваться для фильтрации транспортных средств при поиске. Это также влияет на расчетное время прибытия и расчет маршрута. Fleet Engine предоставляет маршруты и расчеты поездок, которые соответствуют режиму поездки на основе следующих групп типов транспортных средств:
    • AUTO, TAXI или TRUCK, например шоссе.
    • TWO_WHEELER: например, не будут возвращаться маршруты, на которых запрещено движение двухколесных транспортных средств.
    • BICYCLE, например велосипедные дорожки.
    • PEDESTRIAN – например, пешеходные мосты и дорожки.

Другие поля

Другие поля, которые можно задать при создании транспортного средства, перечислены в разделе Обновление полей транспортного средства.

Пример создания транспортного средства

Чтобы создать транспортное средство, можно использовать библиотеку gRPC для Java или REST. Полный список поддерживаемых языков приведен в статье Клиентские библиотеки для сервисов поездок по запросу.

Значение, возвращаемое из CreateVehicle, – это созданный объект Vehicle.

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

См. справочную информацию о методе providers.vehicles.create.

Дальнейшие действия