Ten dokument zawiera ważne pola pojazdów, które możesz aktualizować podczas tworzenia pojazdów i zarządzania nimi.
|
Pełną listę pól pojazdu znajdziesz w:
|
Pole stanu pojazdu
System może ustawić stan pojazdu jako OFFLINE
lub ONLINE
. Możesz na przykład ustawić stan pojazdu na ONLINE
codziennie o 9:00 rano i OFFLINE
codziennie o 17:00.
Tryb OFFLINE | tryb ONLINE |
---|---|
Użyj wartości OFFLINE , aby wskazać, że dany pojazd nie akceptuje nowych przejazdów. Pamiętaj, że w tym stanie pojazd może nadal realizować przypisane przejazdy. |
|
Pole atrybutów pojazdu
Użyj pola Pojazd attributes
, aby utworzyć niestandardowe kryteria, które umożliwią klientom lub operatorom floty znajdowanie pojazdów w Twojej flocie na podstawie większej liczby kryteriów wyszukiwania. Zwiększa to możliwości aplikacji i umożliwia lepsze dopasowanie pojazdów w porównaniu z kryteriami wyszukiwania opartych wyłącznie na innych polach dotyczących pojazdów. Każdy pojazd może mieć maksymalnie 100 atrybutów, a każdy z nich musi mieć unikalny klucz. Wartości mogą być ciągami tekstowymi, wartościami logicznymi lub liczbami.
Możesz na przykład zadeklarować atrybut niestandardowy o nazwie class, aby rozróżnić pojazdy wspólne na różnych poziomach klas. Aby reprezentować poziomy klasy pojazdu, użyj tych wartości ciągu znaków: ECONOMY
, STANDARD
i LUXURY
.
Wartości atrybutów niestandardowych nie muszą się jednak wzajemnie wykluczać. Możesz użyć kryteriów takich jak przyjazne zwierzętom, niepalarnia i możliwość dłuższych podróży. Każdy z nich może być osobnym atrybutem niestandardowym, który używa wartości logicznych. Danemu pojazdowi można przypisać wszystkie te atrybuty niestandardowe, a atrybut niestandardowy class ustawić na odpowiednią wartość ciągu znaków.
Dzięki temu możesz korzystać z różnych funkcji ułatwiających znajdowanie pojazdów dostosowanej do konkretnych potrzeb. Instrukcje korzystania z atrybutów niestandardowych jako filtrów zapytań znajdziesz w artykule Wyszukiwanie pojazdów.
Zaktualizuj atrybuty pojazdu
Atrybuty pojazdu możesz aktualizować za pomocą UpdateVehicle
lub UpdateVehicleAttributes
. Każdy klucz attributes
może mieć tylko 1 wartość na pojazd. Deklarujesz niestandardowe atrybuty pojazdu za pomocą atrybutu attributes
w masce pola, a następnie podajesz wartości zgodnie z poniższą metodą.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Ten interfejs API nie pozwala na aktualizowanie tylko jednego atrybutu. Gdy używasz tej metody, każde użycie pola attributes w masce pola powoduje ponowne zadeklarowanie dla pojazdu całego zestawu atrybutów pojazdu. Spowoduje to zastąpienie każdego istniejącego atrybutu, który nie został wyraźnie uwzględniony w masce pola. Jeśli używasz tej metody do zadeklarowania nowego atrybutu niestandardowego, musisz też ponownie zadeklarować każdy atrybut niestandardowy, który chcesz zachować. Jeśli wykluczysz pole attributes w masce pola, ta metoda pozostawi dotychczasowe atrybuty niestandardowe w postaci zdefiniowanej wcześniej dla pojazdu. Jeśli w masce pola użyjesz wartości attributes , ale nie ustawisz wartości, będzie to równoznaczne z usunięciem wszystkich niestandardowych atrybutów pojazdu.
|
Ta metoda akceptuje określoną listę atrybutów do zaktualizowania. Żądanie aktualizuje lub dodaje tylko te atrybuty określone w masce pola. Istniejące atrybuty, które nie są określone, pozostaną niezmienione. |
Przykład aktualizowania pól pojazdu
W tej sekcji dowiesz się, jak aktualizować pola pojazdu za pomocą UpdateVehicleRequest
, które zawiera update_mask
wskazujący pola do zaktualizowania. Szczegółowe informacje znajdziesz w dokumentacji buforów protokołów na temat masek pola.
Aktualizacje pól innych niż last_location
wymagają uprawnień administratora floty na żądanie.
Przykład: włączenie nowego typu podróży i atrybutu niestandardowego
W tym przykładzie umożliwiamy przejazdy back_to_back
pojazdem oraz określono nowy atrybut: class
. Jak już wspomnieliśmy w sekcji Aktualizowanie atrybutów pojazdu, aby zaktualizować pole attributes
, musisz wskazać wszystkie atrybuty niestandardowe, które chcesz zachować. Dlatego przykład pokazuje wartość cash_only
, która jest zapisywana, aby nie została zastąpiona podczas operacji aktualizacji, która określa pole attributes
.
Aby zaktualizować tylko wartość jednej pary atrybutów klucz-wartość, użyj metody UpdateVehicleAttributes
– nie uwzględniaj pola attribute
w masce pola dla żądania UpdateVehicle
.
Zapoznaj się z dokumentacją providers.vehicles.update
dotyczącą interfejsów gRPC i 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