Este documento abrange campos importantes do veículo que você pode ao criar e gerenciar veículos.
|
Para conferir uma lista completa de campos de veículos, consulte:
|
Campo de estado do veículo
O sistema pode definir o estado do veículo como OFFLINE
ou ONLINE
. Por exemplo,
pode definir o estado do veículo como ONLINE
todos os dias às 9h e OFFLINE
todos os dias
às 17h.
Modo OFF-LINE | Modo ONLINE |
---|---|
Use OFFLINE para indicar que um veículo não está aceitando
novas viagens. O veículo ainda pode concluir viagens atribuídas enquanto
nesse estado. |
|
Campo "Atributos do veículo"
Use o campo attributes
do veículo para criar critérios personalizados e ativar
consumidores ou operadores de frota para encontrar veículos da sua frota em um
diversos critérios de pesquisa. Isso melhora a capacidade dos aplicativos de
fornecer melhores correspondências de veículos do que você usaria com critérios de pesquisa
com base apenas em outros campos de veículos. Cada veículo pode ter no máximo 100 atributos, e cada um precisa ter uma chave exclusiva. Os valores podem ser strings,
booleanos ou números.
Por exemplo, você pode declarar um atributo personalizado chamado class para
diferenciar seus veículos de transporte por aplicativo nos níveis de classe. Use os
seguintes valores de string para representar os níveis de classe de veículo: ECONOMY
,
STANDARD
e LUXURY
.
No entanto, os valores de atributos personalizados não precisam ser mutuamente exclusivos. Você pode usar critérios como aceita animais de estimação, proibido fumar e pode fazer viagens longas. Cada um deles pode ser um atributo personalizado separado que usa valores booleanos. Um determinado veículo pode receber os três atributos personalizados com o atributo personalizado class definido para o valor de string adequado.
Usar atributos dessa forma pode fornecer uma ampla variedade de recursos úteis para para encontrar veículos para viagens com necessidades específicas. Para instruções sobre como Para usar atributos personalizados como filtros de consulta, consulte Pesquisar veículos.
Atualizar atributos do veículo
É possível atualizar os atributos do veículo usando UpdateVehicle
ou
UpdateVehicleAttributes
. Cada chave attributes
pode ter apenas um valor por
veículo. Declare atributos de veículo personalizados usando attributes
na máscara de campo e forneça valores com base no método abaixo.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Essa API não permite atualizar apenas um atributo. Ao usar
esse método, qualquer uso do campo attributes
na máscara de campo resulta na redefinição de todo o conjunto de
atributos do veículo. Isso resulta na
substituição de qualquer atributo preexistente que não esteja explicitamente incluído na
máscara de campo. Se você usar esse método para declarar um novo atributo personalizado,
também precisará declarar novamente todos os atributos personalizados que quiser que o veículo
mantenha. Se você excluir o attributes na máscara de campo,
esse método vai deixar os atributos personalizados atuais como foram definidos anteriormente
para o veículo. Se você usar attributes na máscara de campo,
mas sem definir valores, isso será equivalente a remover todos os atributos
personalizados do veículo.
|
Esse método aceita uma lista específica de atributos para atualizar. A solicitação atualiza ou adiciona apenas os atributos especificados na máscara de campo. Atributos pré-existentes que não são especificados permanecem inalterados. |
Exemplo de atualização dos campos do veículo
Esta seção mostra como atualizar campos de veículos usando UpdateVehicleRequest
,
que inclui um update_mask
para indicar quais campos atualizar. Consulte a
Documentação dos Buffers de protocolo sobre máscaras de campo para mais detalhes.
As atualizações em campos diferentes de last_location
exigem privilégios de Administrador do Fleet Engine On-demand.
Exemplo: ativar o novo tipo de viagem e o atributo personalizado
Este exemplo ativa viagens back_to_back
para o veículo e também especifica um
novo atributo: class
. Conforme observado em Atualizar atributos do veículo,
atualizar o campo attributes
usando essa abordagem exige que você indique todos
os atributos personalizados que quer manter. Portanto, o exemplo mostra um cash_only
valor gravado para preservá-lo de ser substituído durante uma operação de atualização
que especifica o campo attributes
.
Para atualizar somente o valor de um par de atributos de chave-valor, use o método
método UpdateVehicleAttributes
e não inclua o campo attribute
na máscara de campo da solicitação UpdateVehicle
.
Consulte a referência providers.vehicles.update
para gRPC e REST (links em inglês).
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