Questo documento tratta i campi importanti dei veicoli che puoi aggiornare durante la creazione e la gestione dei veicoli.
|
Per un elenco completo dei campi relativi ai veicoli, consulta:
|
Campo Stato del veicolo
Il sistema può impostare lo stato del veicolo su OFFLINE
o ONLINE
. Ad esempio, puoi impostare lo stato del veicolo su ONLINE
ogni giorno alle 9: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 le corse assegnate
in questo stato. |
|
Campo Attributi veicolo
Utilizza il campo attributes
del veicolo per creare criteri personalizzati che consentano ai tuoi
consumatori o gestori di flotte di trovare i veicoli della tua flotta in base a una più ampia
varietà di criteri di ricerca. Ciò migliora le funzionalità delle tue app per
fornire corrispondenze migliori per i veicoli rispetto a quelle che otterresti utilizzando criteri di ricerca
basati esclusivamente su altri campi del veicolo. Ogni veicolo può avere al massimo 100
attributi e ciascuno 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 tuoi veicoli di rideshare in base ai livelli di classe. Utilizzeresti i seguenti valori stringa per rappresentare i livelli di classe del veicolo: ECONOMY
, STANDARD
e LUXURY
.
Tuttavia, i valori degli attributi personalizzati non devono essere univoci tra loro. Potresti utilizzare criteri come accetta animali, non fumatori e disponibilità a effettuare viaggi più lunghi. Ciascuno 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 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 del campo, quindi fornisci i valori in base al metodo riportato di seguito.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Questa API non consente l'aggiornamento di un solo attributo. Quando utilizzi
questo metodo, qualsiasi utilizzo del campo attributes
nella maschera del campo comporta la ridichiarazione dell'intero insieme di
attributi del veicolo. Ciò comporta la sovrascrittura di qualsiasi attributo preesistente non incluso esplicitamente nella maschera del campo. Se utilizzi questo metodo per dichiarare un nuovo attributo personalizzato,
devi anche dichiarare nuovamente ogni attributo personalizzato che vuoi che il veicolo
mantenga. Se escludi attributes nella maschera del campo,
questo metodo lascia gli attributi personalizzati esistenti come definiti in precedenza
per il veicolo. Se utilizzi attributes nella maschera del campo,
ma senza impostare valori, ciò equivale a 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 nella maschera di campo. 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 informazioni dettagliate, 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: attiva 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 di attributi chiave-valore, utilizza il
metodo UpdateVehicleAttributes
e non includere il campo attribute
nella maschera del campo per la richiesta UpdateVehicle
.
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