Crea un veicolo per le corse on demand

Per creare un veicolo in Fleet Engine per le corse on demand, utilizza CreateVehicle con il 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. Tu dovrebbe anche sapere in che modo determinati campi dei veicoli influenzano in 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 dello stato del veicolo in Aggiorna campi per veicoli.
  • supported_trip_types: il valore predefinito è sconosciuto, ma deve essere impostato su CONDIVISI, ESCLUSIVI o entrambi. Consulta la sezione Tipi di viaggio nella sezione Viaggi on demand guida per i dettagli.
  • maximum_capacity: il numero di passeggeri che può trasportare il veicolo, che esclude 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 veicolo ricerche. Questo influisce anche sul calcolo dell'orario di arrivo stimato e dei percorsi. Fleet Engine fornisce percorsi e calcoli di viaggio che corrispondono alla modalità di viaggi in base ai seguenti gruppi di tipi di veicoli:
    • AUTO, TAXI o TRUCK: ad esempio autostrade.
    • TWO_WHEELER: ad esempio, non verranno restituiti percorsi in cui non sono disponibili veicoli a due ruote consentito.
    • 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 il riferimento providers.vehicles.create.

Passaggi successivi