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 relativi ai veicoli, consulta:
|
Campo Stato del veicolo
Il sistema può impostare lo stato del veicolo su OFFLINE
o ONLINE
. Ad esempio, potresti 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 del veicolo attributes
per creare criteri personalizzati che consentano ai consumatori o agli operatori del parco veicoli di trovare i veicoli del tuo parco su 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 del veicolo. Ogni veicolo può averne al massimo 100
e ognuno deve avere una chiave univoca. I valori possono essere stringhe
booleani o numeri.
Ad esempio, puoi dichiarare un attributo personalizzato denominato class per distinguere i veicoli di ridesharing in base ai livelli di classe. Dovresti utilizzare
seguenti valori di stringa per rappresentare i livelli della classe del veicolo: ECONOMY
,
STANDARD
e LUXURY
.
Tuttavia, non è necessario che i valori degli attributi personalizzati si escludano a vicenda. Potresti utilizza criteri quali adatto agli animali domestici, non fumatori e in grado di richiedere più tempo per i viaggi. Ognuno di questi può essere un attributo personalizzato distinto che utilizza valori booleani e i relativi valori. A un determinato veicolo possono 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 una vasta gamma di funzionalità utili per trovare veicoli per viaggi con esigenze specifiche. Per istruzioni su come per utilizzare attributi personalizzati come filtri delle query, consulta Ricerca di veicoli.
Aggiorna gli attributi del veicolo
Puoi aggiornare gli attributi del veicolo utilizzando UpdateVehicle
o
UpdateVehicleAttributes
. Ogni chiave attributes
può avere un solo valore per
veicolo. Dichiari gli attributi personalizzati dei veicoli utilizzando l'attributo attributes
nella maschera del campo, poi fornendo valori in base al metodo descritto di seguito.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Questa API non consente di aggiornare un solo attributo. Quando si utilizza
questo metodo, qualsiasi utilizzo dell'attributes
nella maschera di campo restituisce l'intero insieme di
attributi del veicolo che vengono nuovamente dichiarati per il veicolo. Ciò determina
sovrascrivere qualsiasi attributo preesistente non esplicitamente incluso nel
maschera del campo di testo. Se utilizzi questo metodo per dichiarare un nuovo attributo personalizzato,
devi anche dichiarare di nuovo tutti gli attributi personalizzati che vuoi
conservare per il veicolo. Se escludi attributes nella maschera dei campi,
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, è equivalente a rimuovere tutti gli attributi personalizzati
dal veicolo.
|
Questo metodo accetta un elenco specifico di attributi per aggiornamento. La richiesta si aggiorna o aggiunge solo gli attributi specificati nella maschera del 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 maggiori dettagli, consulta la documentazione di Protocol Buffers sulle maschere di campo.
Gli aggiornamenti a campi diversi da last_location
richiedono Fleet Engine On demand
Privilegi amministrativi.
Esempio: abilita un nuovo tipo di viaggio e un attributo personalizzato
Questo esempio abilita le corse back_to_back
per il veicolo e specifica anche un
nuovo attributo: class
. Come indicato in precedenza in Aggiornare gli attributi del veicolo,
l'aggiornamento del campo attributes
con questo approccio richiede di indicare tutte
gli attributi personalizzati che vuoi conservare. Di conseguenza, l'esempio mostra un valore cash_only
valore 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 valore-chiave, utilizza la proprietà
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