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. Este endpoint requer uma conta com o papel Administrador sob demanda do Fleet Engine.

Campos para veículos de viagem sob demanda

Ao criar veículos para viagens sob demanda, é necessário definir os campos obrigatórios. Você também precisa conhecer como determinados campos de veículo afetam outras funcionalidades no Fleet Engine. Consulte Atualizar campos do veículo para saber como fazer isso.

Campos obrigatórios para viagens sob demanda

  • vehicle_state: o padrão é desconhecido, mas precisa ser definido como ON-LINE ou OFF-LINE. 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 viagem em Viagens sob demanda para mais detalhes.
  • maximum_capacity: o número de passageiros que o veículo pode transportar, o que exclui 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 pesquisas. Isso também influencia o HEC e os cálculos de rotas. 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 retorna trajetos onde motocicletas não estejam permitido.
    • 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