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ãoAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
ouPEDESTRIAN
. 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
ouTRUCK
: 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.