Para criar um veículo no Fleet Engine para viagens sob demanda, use o endpoint CreateVehicle
com o CreateVehicleRequest
. Esse endpoint exige uma conta com o papel de Administrador sob demanda do Fleet Engine.
Campos para veículos de viagens 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ículos 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 é "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, o que exclui o motorista (por definição).vehicle_type
: os valores sãoAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
ouPEDESTRIAN
. Pode ser usado para filtrar veículos em pesquisas de veículos. Isso também influencia os cálculos de tempo estimado de chegada e rota. O Fleet Engine fornece rotas e cálculos de viagem que correspondem ao modo de viagem com base nos seguintes grupos de tipos de veículos:AUTO
,TAXI
ouTRUCK
: por exemplo, rodovias.TWO_WHEELER
: por exemplo, não retorna 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 campos de 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.