Crea un vehículo para viajes a pedido

Si quieres crear un vehículo en Fleet Engine para viajes on demand, usa el CreateVehicle extremo con el CreateVehicleRequest. Este extremo requiere una cuenta con el rol de administrador a pedido de Flet Engine.

Campos para vehículos de transporte según demanda

Cuando creas vehículos para viajes on demand, debes establecer campos obligatorios. Tú también debería estar familiarizado con el impacto que tienen ciertos campos vehiculares sobre otros en Fleet Engine. Consulta Actualizar los campos de vehículos para obtener más información.

Campos obligatorios para los viajes on demand

  • vehicle_state: El valor predeterminado es desconocido, pero se debe establecer en EN LÍNEA o SIN CONEXIÓN Consulta la información sobre la configuración del campo de estado del vehículo en Actualización vehículos específicos.
  • supported_trip_types: El valor predeterminado es desconocido, pero se debe establecer como COMPARTIDO, EXCLUSIVO o ambos. Consulta Tipos de viaje en la sección Viajes on demand. para conocer más detalles.
  • maximum_capacity: Es la cantidad de pasajeros que puede transportar el vehículo. que excluye el controlador (por definición).
  • vehicle_type: Los valores son AUTO, TAXI, TRUCK, TWO-WHEELER. BICYCLE o PEDESTRIAN. Se puede usar para filtrar vehículos por vehículo búsquedas. Esto también influye en los cálculos de la hora de llegada estimada y la ruta. Fleet Engine proporciona rutas y cálculos de viajes que corresponden al modo de viajar según los siguientes grupos de tipos de vehículos:
    • AUTO, TAXI o TRUCK: Por ejemplo, autopistas.
    • TWO_WHEELER: Por ejemplo, no mostrará rutas en las que no se utilicen vehículos de 2 ruedas. por lo que está permitido.
    • BICYCLE: Por ejemplo, ciclovías
    • PEDESTRIAN: Por ejemplo, pasarelas y puentes solo para peatones.

Otros campos

Para conocer otros campos que puedes configurar cuando creas un vehículo, consulta Actualizar vehículo. de configuración.

Ejemplo de creación de vehículo

El valor que muestra 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"}]
}
EOM

Consulta la referencia de providers.vehicles.create.

¿Qué sigue?