Criar um veículo para viagens sob demanda

Se quiser criar um veículo no Fleet Engine para viagens sob demanda, use o CreateVehicle. endpoint com o CreateVehicleRequest. Esse endpoint exige uma conta com o papel de Administrador sob demanda do Fleet Engine.

Campos para veículos de viagem sob demanda

Ao criar veículos para viagens sob demanda, você precisa definir campos obrigatórios. Você também precisa conhecer como determinados campos de veículos afetam outras funcionalidades no Fleet Engine. Para isso, consulte Atualizar campos do veículo.

Campos obrigatórios para viagens sob demanda

  • vehicle_state: o padrão é "unknown", mas precisa ser definido como "ONLINE" ou "OFFLINE". Consulte informações sobre como definir o campo de estado do veículo em Atualizar campos do veículo.
  • supported_trip_types: o padrão é "unknown", mas precisa ser definido como SHARED, EXCLUSIVE ou ambos. Consulte Tipos de viagens no guia Viagens sob demanda para mais detalhes.
  • maximum_capacity: o número de passageiros que o veículo pode transportar, excluindo o motorista (por definição).
  • vehicle_type: os valores são AUTO, TAXI, TRUCK, TWO_WHEELER, BICYCLE ou PEDESTRIAN. Pode ser usado para filtrar veículos em pesquisas. Isso também influencia os cálculos de tempo estimado de chegada e rota. Motor de frota fornece trajetos e cálculos de viagem que correspondem ao modo de viagem com base nos seguintes grupos de tipos de veículo:
    • AUTO, TAXI ou TRUCK: por exemplo, rodovias.
    • TWO_WHEELER: por exemplo, não vai retornar rotas em que não são permitidos veículos de duas rodas.
    • BICYCLE: por exemplo, ciclovias.
    • PEDESTRIAN: por exemplo, pontes e passarelas exclusivas para pedestres.

Outros campos

Para outros campos que podem ser definidos ao criar um veículo, consulte Atualizar veículo .

Exemplo de criação de veículo

O valor retornado de CreateVehicle é a entidade Vehicle criada.

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

Consulte a referência providers.vehicles.create.

A seguir