Crea un veicolo per le corse on demand

Per creare un veicolo in Fleet Engine per i viaggi on demand, utilizza l'endpoint CreateVehicle con 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 le corse on demand, devi impostare i campi obbligatori. Devi anche conoscere l'impatto di determinati campi del veicolo su altre funzionalità di Fleet Engine. Per farlo, 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 sull'impostazione del campo Stato del veicolo in Aggiorna campi del veicolo.
  • supported_trip_types: il valore predefinito è sconosciuto, ma deve essere impostato su SHARED, EXCLUSIVE o su entrambi. Consulta la sezione Tipi di viaggio nella sezione Viaggi on demand. guida per i dettagli.
  • 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. Questo influisce anche sul calcolo dell'orario di arrivo stimato e dei percorsi. 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 il veicolo campi.

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

Passaggi successivi