En este documento, se describen los campos importantes de los vehículos que puedes actualizar cuando creas y administras vehículos.
|
Para obtener una lista completa de los campos de vehículos, consulta los siguientes recursos:
|
Campo de estado del vehículo
El sistema puede establecer el estado del vehículo en OFFLINE
o ONLINE
. Por ejemplo, puedes establecer el estado del vehículo en ONLINE
todos los días a las 9 a.m. y en OFFLINE
todos los días a las 5 p.m.
Modo OFFLINE | Modo EN LÍNEA |
---|---|
Usa OFFLINE para indicar que un vehículo no acepta
nuevos viajes. Ten en cuenta que el vehículo aún puede completar los viajes asignados mientras se encuentra en este estado. |
|
Campo de atributos del vehículo
Usa el campo attributes
del vehículo para crear criterios personalizados que permitan a los consumidores o operadores de flotas encontrar vehículos en tu flota con una variedad más amplia de criterios de búsqueda. Esto mejora las capacidades de tus apps para proporcionar mejores coincidencias de vehículos que las que obtendrías si usaras criterios de búsqueda basados únicamente en otros campos de vehículos. Cada vehículo puede tener como máximo 100
atributos y cada uno debe tener una clave única. Los valores pueden ser cadenas, valores booleanos o números.
Por ejemplo, podrías declarar un atributo personalizado llamado class para diferenciar tus vehículos de transporte privado con conductor en los diferentes niveles de clase. Usarás los siguientes valores de cadena para representar los niveles de clase de vehículo: ECONOMY
, STANDARD
y LUXURY
.
Sin embargo, no es necesario que los valores de los atributos personalizados sean mutuamente excluyentes. Puedes usar criterios como admite mascotas, no fumadores y puede realizar viajes más largos. Cada uno de ellos puede ser un atributo personalizado independiente que use valores booleanos de salida. A un vehículo determinado se le podrían asignar los tres atributos personalizados junto con el atributo personalizado class establecido en el valor de cadena adecuado.
Usar atributos de esta manera puede proporcionarte una amplia variedad de funciones útiles para buscar vehículos para viajes con necesidades específicas. Para obtener instrucciones sobre cómo Si quieres usar atributos personalizados como filtros de consulta, consulta Buscar vehículos.
Actualiza los atributos del vehículo
Puedes actualizar los atributos del vehículo con UpdateVehicle
o UpdateVehicleAttributes
. Cada clave attributes
solo puede tener un valor por
vehículo. Puedes declarar atributos personalizados de vehículos con el atributo attributes
en la máscara de campo y, luego, proporcionará valores según el método que se indica a continuación.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Esta API no permite actualizar un solo atributo. Cuando uses
este método, cualquier uso de attributes
en la máscara de campo da como resultado el conjunto completo de
atributos de vehículos que se vuelvan a declarar para el vehículo. Esto genera una sustitución de cualquier atributo preexistente que no se incluya de forma explícita en la máscara de campo. Si usas este método para declarar un nuevo atributo personalizado, haz lo siguiente:
También debes volver a declarar cada atributo personalizado que quieras que el vehículo
retener. Si excluyes el attributes en la máscara de campo, este método deja los atributos personalizados existentes como se definió anteriormente para el vehículo. Si usas attributes en la máscara de campo, pero sin establecer valores, eso equivale a quitar todos los atributos personalizados del vehículo.
|
Este método acepta una lista específica de atributos para actualizar. La solicitud actualiza o agrega solo los atributos especificados en la máscara de campo. Los atributos preexistentes que no se especifiquen no se verán afectados. |
Ejemplo de actualización de campos de vehículos
En esta sección, se muestra cómo actualizar los campos de vehículos con UpdateVehicleRequest
,
que incluye un update_mask
para indicar qué campos se deben actualizar. Consulta la
Documentación de los búferes de protocolo sobre las máscaras de campo para obtener más información
Las actualizaciones de campos que no sean last_location
requieren Fleet Engine a pedido
Privilegios de administrador
Ejemplo: Habilita un nuevo tipo de viaje y un atributo personalizado
En este ejemplo, se habilitan los viajes de back_to_back
para el vehículo y también se especifica un
nuevo atributo: class
. Como se indicó anteriormente en Cómo actualizar los atributos de los vehículos, para actualizar el campo attributes
con este enfoque, debes indicar todos los atributos personalizados que deseas conservar. Por lo tanto, en el ejemplo se muestra un cash_only
.
valor escrito para evitar que se reemplace durante una operación de actualización.
que especifique el campo attributes
.
Para actualizar solo el valor de un par de atributos de clave-valor, usa el atributo
UpdateVehicleAttributes
en su lugar, sin incluir el campo attribute
en la máscara de campo de la solicitud UpdateVehicle
.
Consulta la referencia de providers.vehicles.update
para gRPC y 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