Questo documento illustra importanti campi 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 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 9:00 e su OFFLINE
ogni giorno alle 17:00.
Modalità OFFLINE | Modalità ONLINE |
---|---|
Utilizza OFFLINE per indicare che un veicolo non accetta nuove corse. Tieni presente che il veicolo può comunque completare i viaggi assegnati mentre è in questo stato. |
|
Campo degli attributi del 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. Ciò migliora le funzionalità delle tue app per
fornire corrispondenze migliori per i veicoli rispetto all'utilizzo dei criteri di ricerca
in base esclusivamente ad altri campi relativi ai veicoli. Ogni veicolo può avere al massimo 100
attributi, ognuno dei quali deve avere una chiave univoca. I valori possono essere stringhe,
booleani o numeri.
Ad esempio, puoi dichiarare un attributo personalizzato denominato class per differenziare i veicoli di ridesharing in base ai livelli di classe. Per rappresentare i livelli di classe del veicolo, utilizza i seguenti valori di stringa: ECONOMY
,STANDARD
e LUXURY
.
Tuttavia, i valori degli attributi personalizzati non devono essere necessariamente esclusivi tra loro. Potresti utilizzare criteri come ammette animali domestici, vietato fumare e può 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 può fornire 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 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 del veicolo utilizzando l'attributo attributes
nella maschera del campo, fornendo poi 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 campo attributes nella maschera dei campi comporta una nuova dichiarazione per l'intero set di attributi del veicolo per il veicolo. Ciò comporta la
sovrascrittura di qualsiasi attributo preesistente non incluso esplicitamente nella
maschera di campo. Se utilizzi questo metodo per dichiarare un nuovo attributo personalizzato,
devi anche dichiarare nuovamente ogni attributo personalizzato che vuoi che il veicolo
conservi. Se escludi attributes nella maschera di campo,
questo metodo lascia invariati 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 da actualizare. 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 maggiori dettagli, consulta la documentazione relativa ai buffer di protocollo sulle maschere di campo.
Gli aggiornamenti ai campi diversi da last_location
richiedono i privilegi Fleet Engine On-demand Admin.
Esempio: attivare un nuovo tipo di viaggio e un attributo personalizzato
Questo esempio abilita i viaggi back_to_back
per il veicolo e specifica anche un nuovo attributo: class
. Come indicato in precedenza in Aggiornare gli attributi del veicolo,
per aggiornare il campo attributes
utilizzando questo approccio è necessario 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 di 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