|
Questo documento illustra i campi importanti dei veicoli che puoi aggiornare durante la creazione e la gestione dei veicoli.
|
Per un elenco completo dei campi dei veicoli, vedi:
|
Campo dello stato del veicolo
Il tuo sistema può impostare lo stato del veicolo su OFFLINE o ONLINE. Ad esempio, potresti impostare lo stato del veicolo su ONLINE ogni giorno alle 09:00 e su OFFLINE ogni giorno alle 17:00.
| Modalità OFFLINE | Modalità ONLINE |
|---|---|
Utilizza OFFLINE per indicare che un veicolo non accetta
nuovi viaggi. Tieni presente che il veicolo può comunque completare i viaggi assegnati mentre
in questo stato. |
|
Campo degli attributi del veicolo
Utilizza il campo attributes del veicolo per creare criteri personalizzati che consentano ai tuoi consumatori o agli operatori della flotta di trovare veicoli nella tua flotta in base a una gamma più ampia di criteri di ricerca. In questo modo, le tue app possono fornire corrispondenze di veicoli migliori rispetto a quelle che otterresti utilizzando criteri di ricerca basati esclusivamente su altri campi dei veicoli. Ogni veicolo può avere al massimo 100 attributi e ognuno deve avere una chiave univoca. I valori possono essere stringhe, valori booleani o numeri.
Ad esempio, potresti dichiarare un attributo personalizzato denominato class per differenziare i veicoli di ridesharing in base ai livelli di classe. Utilizzeresti i seguenti valori di stringa per rappresentare i livelli di classe dei veicoli: ECONOMY, STANDARD e LUXURY.
Tuttavia, i valori degli attributi personalizzati non devono essere univoci tra loro. Potresti utilizzare criteri come pet-friendly, non-smoking e able to take longer trips. Ognuno di questi potrebbe essere un attributo personalizzato separato che utilizza valori booleani. A un determinato veicolo potrebbero essere assegnati tutti e tre questi attributi personalizzati insieme all'attributo personalizzato class impostato sul valore di stringa appropriato.
L'utilizzo degli attributi in questo modo può fornirti un'ampia gamma di funzionalità utili per trovare veicoli per viaggi con esigenze specifiche. Per istruzioni su come utilizzare gli attributi personalizzati come filtri di query, consulta Cercare veicoli.
Aggiornare gli attributi del veicolo
Puoi aggiornare gli attributi del veicolo utilizzando UpdateVehicle o
UpdateVehicleAttributes. Ogni chiave attributes può avere un solo valore per veicolo. Dichiara gli attributi personalizzati del veicolo utilizzando attributes nella maschera di campo e poi fornendo i valori in base al metodo riportato di seguito.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
Questa API non consente di aggiornare un solo attributo. Quando utilizzi
questo metodo, qualsiasi utilizzo del attributes
campo nella maschera di campo comporta la ridichiarazione dell'intero insieme di
attributi del veicolo per il veicolo. Di conseguenza, qualsiasi attributo preesistente non incluso esplicitamente nella
maschera di campo viene sovrascritto. Se utilizzi questo metodo per dichiarare un nuovo attributo personalizzato, devi anche ridichiarare tutti gli attributi personalizzati che vuoi che il veicolo mantenga. Se escludi attributes nella maschera di campo, questo metodo lascia gli attributi personalizzati esistenti come definiti in precedenza per il veicolo. Se utilizzi attributes nella maschera di campo, ma senza impostare i valori, è come rimuovere tutti gli attributi personalizzati dal veicolo.
|
Questo metodo accetta un elenco specifico di attributi da aggiornare. La richiesta aggiorna o aggiunge solo gli attributi specificati in the field mask. Gli attributi preesistenti non specificati rimangono invariati. |
Esempio di aggiornamento dei campi del veicolo
Questa sezione mostra come aggiornare i campi del veicolo utilizzando UpdateVehicleRequest, che include un update_mask per indicare quali campi aggiornare. Per maggiori dettagli, consulta la documentazione di
Protocol Buffers sulle maschere di campo.
Gli aggiornamenti ai campi diversi da last_location richiedono i privilegi di Fleet Engine On-demand Admin.
Esempio: attivare il nuovo tipo di viaggio e l'attributo personalizzato
Questo esempio attiva i viaggi back_to_back per il veicolo e specifica anche un nuovo attributo: class. Come indicato in Aggiornare gli attributi del veicolo in precedenza, l'aggiornamento del campo attributes utilizzando questo approccio richiede di indicare tutti gli attributi personalizzati che vuoi conservare. Pertanto, l'esempio mostra un valore cash_only scritto per evitare che venga sovrascritto durante un'operazione di aggiornamento che specifica il campo attributes.
Per aggiornare solo il valore di una coppia chiave-valore, utilizza invece il
UpdateVehicleAttributes metodo e non includere il attribute campo
nella maschera di campo per la UpdateVehicle richiesta.
Consulta il riferimento providers.vehicles.update per gRPC e REST.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
REST
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM