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, você precisa definir campos obrigatórios. Você você também precisa saber como certos campos de veículos afetam outras funcionalidade de armazenamento no Fleet Engine. Para isso, consulte Atualizar campos do veículo.

Campos obrigatórios para viagens sob demanda

  • vehicle_state: o padrão é desconhecido, mas precisa ser definido como ON-LINE ou OFF-LINE. Confira informações sobre como definir o campo de estado do veículo em Atualizar campos de veículos.
  • supported_trip_types: o padrão é desconhecido, mas precisa ser definido como COMPARTILHADO, EXCLUSIVO 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. que exclui o driver (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 rotas onde não há motocicletas. 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