|
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
Tu 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 SIN CONEXIÓN | Modo ONLINE |
|---|---|
Usa OFFLINE para indicar que un vehículo no acepta viajes nuevos. Ten en cuenta que el vehículo aún puede completar los viajes asignados mientras
está en este estado. |
|
Campo de atributos del vehículo
Usa el campo attributes del vehículo para crear criterios personalizados que permitan a tus consumidores o operadores de flota encontrar vehículos en tu flota a través de 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 un máximo de 100
atributos, y cada uno debe tener una clave única. Los valores pueden ser cadenas,
booleanos o números.
Por ejemplo, puedes declarar un atributo personalizado llamado class para diferenciar tus vehículos de viajes compartidos según los niveles de clase. Usarías los siguientes valores de cadena para representar los niveles de clase de vehículo: ECONOMY, STANDARD y LUXURY.
Sin embargo, los valores de los atributos personalizados no tienen que ser mutuamente excluyentes. Puedes usar criterios como admite mascotas, no fumador y puede realizar viajes más largos. Cada uno de estos podría ser un atributo personalizado independiente que use valores booleanos. A un vehículo determinado, se le podrían asignar estos tres atributos personalizados junto con el atributo personalizado class establecido en el valor de cadena adecuado.
Usar los atributos de esta manera puede proporcionarte una amplia variedad de funciones útiles para encontrar vehículos para viajes con necesidades específicas. Para obtener instrucciones sobre cómo usar atributos personalizados como filtros de consulta, consulta Busca 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. Declara los atributos personalizados de los vehículos con attributes
en la máscara de campo y, luego, proporciona valores según el método que se indica a continuación.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
Esta API no permite actualizar un solo atributo. Cuando se usa
este método, cualquier uso del campo attributes
en la máscara de campo hace que se vuelva a declarar el conjunto completo de
atributos del vehículo. Esto genera un
reemplazo 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 atributo personalizado nuevo, también debes volver a declarar cada atributo personalizado que quieras que conserve el vehículo. Si excluyes attributes en la máscara de campo,
este método deja los atributos personalizados existentes como se definieron anteriormente
para el vehículo. Si usas attributes en la máscara de campo,
pero sin establecer valores, 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 especifican permanecen sin alteraciones. |
Ejemplo de actualización de campos de vehículos
En esta sección, se muestra cómo actualizar los campos de un vehículo con UpdateVehicleRequest,
que incluye una update_mask para indicar qué campos se deben actualizar. Consulta la
documentación de búferes de protocolo sobre las máscaras de campo para obtener más detalles.
Las actualizaciones de campos que no sean last_location requieren privilegios de administrador a pedido de Fleet Engine.
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 atributo nuevo: class. Como se indicó antes en Actualiza 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 valor cash_only
escrito para evitar que se reemplace durante una operación de actualización
que especifica el campo attributes.
Para actualizar solo el valor de un par de atributos clave-valor, usa el método UpdateVehicleAttributes y no incluyas el campo attribute en la máscara de campo para 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