Para crear un vehículo en Fleet Engine para viajes a pedido, usa el CreateVehicle
extremo con el CreateVehicleRequest. Este extremo requiere una cuenta con el rol de Administrador de Fleet Engine On-demand.
Campos para vehículos de viajes a pedido
Cuando crees vehículos para viajes a pedido, debes configurar los campos obligatorios. También debes conocer cómo ciertos campos de vehículos afectan otras funciones en Fleet Engine. Consulta Actualiza los campos de vehículos para obtener más información.
Campos obligatorios para viajes a pedido
vehicle_state: El valor predeterminado es desconocido, pero se debe establecer como EN LÍNEA o SIN CONEXIÓN. Consulta la información para configurar el campo de estado del vehículo en Actualiza los campos de vehículos.supported_trip_types: El valor predeterminado es desconocido, pero se debe establecer como COMPARTIDO, EXCLUSIVO o ambos. Consulta Tipos de viajes en la guía Viajes a pedido para obtener más información.maximum_capacity: Es la cantidad de pasajeros que puede transportar el vehículo, lo que excluye al conductor (por definición).vehicle_type: Los valores sonAUTO,TAXI,TRUCK,TWO_WHEELER,BICYCLEoPEDESTRIAN. Se puede usar para filtrar vehículos para búsquedas de vehículos. Esto también influye en los cálculos de ETA y ruta. Fleet Engine proporciona rutas y cálculos de viaje que corresponden al modo de viaje según los siguientes grupos de tipos de vehículos:AUTO,TAXIoTRUCK: Por ejemplo, autopistas.TWO_WHEELER: Por ejemplo, no mostrará rutas en las que no se permiten vehículos de 2 ruedas.BICYCLE: Por ejemplo, rutas para bicicletas.PEDESTRIAN: Por ejemplo, puentes y pasarelas solo para peatones.
Otros campos
Para ver otros campos que puedes configurar cuando creas un vehículo, consulta Actualiza los campos de vehículos.
Ejemplo de creación de vehículos
Para crear un vehículo, puedes usar la biblioteca gRPC de Java o REST. Para obtener una lista completa de los idiomas compatibles, consulta Bibliotecas cliente para servicios de viajes a pedido.
El valor que se muestra de CreateVehicle es la entidad Vehicle creada.
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"}]
}
EOMConsulta la referencia de providers.vehicles.create.