Crea un veicolo per le corse on demand

Per creare un veicolo in Fleet Engine per le corse on demand, utilizza l'endpoint CreateVehicle con il parametro CreateVehicleRequest. Questo endpoint richiede un account con il ruolo Amministratore on demand di Fleet Engine.

Campi per i veicoli per le corse on demand

Quando crei veicoli per i viaggi on demand, devi impostare i campi obbligatori. Devi anche conoscere l'impatto di determinati campi dei veicoli su altre funzionalità di Fleet Engine. Per informazioni in merito, consulta Aggiornare i campi del veicolo.

Campi obbligatori per le corse on demand

  • vehicle_state: il valore predefinito è sconosciuto, ma deve essere impostato su ONLINE o OFFLINE. Consulta le informazioni su come impostare il campo dello stato del veicolo in Aggiorna i campi del veicolo.
  • supported_trip_types: il valore predefinito è sconosciuto, ma deve essere impostato su SHARED, EXCLUSIVE o su entrambi. Per maggiori dettagli, consulta la sezione Tipi di corsa nella guida Corse on demand.
  • maximum_capacity: il numero di passeggeri che il veicolo può trasportare, escluso il conducente (per definizione).
  • vehicle_type: i valori sono AUTO, TAXI, TRUCK, TWO_WHEELER, BICYCLE o PEDESTRIAN. Può essere utilizzato per filtrare i veicoli per le ricerche di veicoli. Ciò influisce anche sui calcoli dell'orario di arrivo stimato e del percorso. Fleet Engine fornisce percorsi e calcoli di viaggio corrispondenti alla modalità di viaggio in base ai seguenti gruppi di tipo di veicolo:
    • AUTO, TAXI o TRUCK: ad esempio autostrade.
    • TWO_WHEELER: ad esempio, non restituirà i percorsi in cui i veicoli a due ruote non sono consentiti.
    • BICYCLE: ad esempio, piste ciclabili.
    • PEDESTRIAN: ad esempio ponti e passaggi pedonali.

Altri campi

Per altri campi che puoi impostare durante la creazione di un veicolo, consulta Aggiornare i campi del veicolo.

Esempio di creazione di un veicolo

Il valore restituito da CreateVehicle è l'entità Vehicle creata.

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 documentazione di riferimento di providers.vehicles.create.

Passaggi successivi