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 sonoAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
oPEDESTRIAN
. 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
oTRUCK
: 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.