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 CreateVehicleRequest. Questo endpoint richiede un account con il ruolo Amministratore Fleet Engine on demand.

Campi per i veicoli di viaggi on demand

Quando crei veicoli per viaggi 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 relativo allo stato del veicolo in Aggiornamento dei campi del veicolo.
  • supported_trip_types: il valore predefinito è sconosciuto, ma deve essere impostato su SHARED, EXCLUSIVE o entrambi. Per i dettagli, consulta la sezione Tipi di viaggi nella guida Viaggi on demand.
  • maximum_capacity: il numero di passeggeri che il veicolo può trasportare, escluso l'autista (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'ETA e del percorso. Fleet Engine fornisce percorsi e calcoli di viaggio corrispondenti alla modalità di spostamento in base ai seguenti gruppi di tipi di veicoli:
    • AUTO, TAXI o TRUCK: ad esempio, le autostrade.
    • TWO_WHEELER, ad esempio, non restituirà percorsi in cui i veicoli a due ruote non sono consentiti.
    • BICYCLE: ad esempio, piste ciclabili.
    • PEDESTRIAN: ad esempio ponti e passerelle solo per pedoni.

Altri campi

Per altri campi che puoi impostare quando crei un veicolo, vedi 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 il riferimento providers.vehicles.create.

Passaggi successivi