En este documento, se asume que sabes crear y usar tareas. Proporciona ejemplos específicos sobre cómo configurar las tareas de envío de las siguientes maneras:
Establecer el período objetivo para una tarea de envío: Permite configurar el período. para que la tarea se complete.
Personalizar la visibilidad de las tareas: Personaliza la visibilidad de las actividades de las tareas para mostrar a los clientes o a los operadores de la flota.
Consulte Crear tareas de envío para obtener detalles sobre los campos para las tareas de envío. Cuando actualices información adicional sobre las tareas existentes, también debes incluir el identificador relevante para la tarea, además de los campos que para las tareas.
Establece el período objetivo
El período objetivo es el TimeWindow durante el cual la tarea debe completarse el proyecto se completó. Por ejemplo, si comunicas un plazo de entrega a la entrega destinatarios, puedes usar el período objetivo de la tarea para capturar este período generar alertas, o bien usarla para analizar el rendimiento de viajes anteriores.
El período objetivo consta de una hora de inicio y una de finalización, y se puede establecer para cualquier tipo de tarea. El período objetivo no afecta el enrutamiento el comportamiento de los usuarios.
En los siguientes ejemplos, se muestra cómo configurar el período con gRPC de Java
o cómo realizar una solicitud REST HTTP a UpdateTask
. Puedes
establece también este campo cuando se crea la tarea.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTargetTimeWindow(
TimeWindow.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
.setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("targetTimeWindow"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
Para establecer un período de las tareas con HTTP, llama a PATCH
y
Usa updateMask
para actualizar el parámetro targetTimeWindow
:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Aquí, <id> es un identificador único para la tarea. El encabezado de la solicitud debe contener un campo Authorization con el valor Bearer <token>. en el que tu servidor emite <token> según los lineamientos. que se describen en Roles de cuentas de servicio y tokens web JSON.
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=targetTimeWindow" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"targetTimeWindow": {
"startTime": "2023-03-29T21:00:00Z",
"endTime": "2023-03-29T23:00:00Z"
}
}
EOM
Personaliza la visibilidad de la tarea
De forma predeterminada, Fleet Engine proporciona visibilidad de las actividades de las tareas, que luego pueden mostrar a los clientes que reciben un envío y a los operadores de la flota el seguimiento de envíos. Esto incluye información como la indicación de la cantidad de parada antes de enviar a un cliente una notificación sobre la entrega de su paquete estado. Puedes personalizar esta información por tarea para que se adapte mejor tu modelo de negocio.
En esta sección, se describen las reglas de visibilidad para los objetos a los que se les realiza seguimiento en el mapa. Estas reglas se aplican a dos categorías de objetos:
- Visibilidad del marcador de ubicación
- Visibilidad de datos de tareas para tareas activas de vehículos, como polilíneas y hora de llegada estimada
Reglas de visibilidad del marcador de ubicación
Fleet Engine muestra marcadores de ubicación para la ubicación de entrega del envío en el mapa, independientemente del estado de la publicación.
Reglas de visibilidad de datos de tareas
En esta sección, se describen las reglas de visibilidad predeterminadas que se aplican a los datos de tareas. Solo puedes personalizar las tareas activas del vehículo, lo que significa que solo se pueden aplicar reglas de visibilidad personalizadas.
Las siguientes tareas no se pueden personalizar:
- Paradas programadas
- Tareas de falta de disponibilidad
- Tareas de vehículos inactivos
Reglas de visibilidad de las tareas con falta de disponibilidad
De forma predeterminada, el vehículo no aparece en el mapa si hay al menos uno se asigna a la tarea de la que se hace un seguimiento. Por ejemplo, si el el conductor se está tomando un descanso o el vehículo se está volviendo a cargar combustible en la ruta hacia el seguimiento de envío. La hora de llegada estimada y la hora estimada de finalización de la tarea siguen disponibles. Recuerda que no puedes personalizar esta regla.
Visibilidad de las tareas activas del vehículo
El objeto TaskTrackingInfo
proporciona una serie de elementos de datos que puedes
pueden mostrarse con la biblioteca de seguimiento de envíos. De forma predeterminada, estos campos
serán visibles cuando la tarea se asigne al vehículo y cuando este esté
dentro de las 5 paradas de la tarea. La visibilidad finaliza cuando se completa la tarea o
cancelado.
Puedes personalizar la configuración de visibilidad por tarea estableciendo
el TaskTrackingViewConfig
en una tarea cuando se crea o actualiza
en Fleet Engine. Esto crea reglas para que los elementos de datos individuales
disponibles.
En la siguiente tabla, se muestran los campos a los que puedes aplicar reglas de visibilidad.
Campos de tareas del vehículo para las reglas de visibilidad |
---|
|
En esta tabla, se muestran las opciones de visibilidad disponibles para los campos mencionados anteriormente.
Opciones de visibilidad |
---|
|
Rutas de polilíneas y reglas de visibilidad de la ubicación de los vehículos
En el caso de las rutas rastreadas, la visibilidad de las polilíneas de rutas está sujeta a la visibilidad del vehículo. Si una polilínea de ruta es visible en una ruta activa donde el vehículo no se ve, la ubicación del vehículo puede inferido por el final de la polilínea visible. Por lo tanto, la polilínea de ruta La visibilidad debe ser tan restrictiva o más restrictiva que la visibilidad del vehículo.
Sigue estas reglas para proporcionar polilíneas de rutas o ubicaciones de vehículos válidas combinación de visibilidad.
Las polilíneas de rutas y la ubicación del vehículo especifican las mismas opciones de visibilidad
En este caso, tanto la polilínea como la ubicación del vehículo establecen el mismo como las siguientes:
- recuento de paradas restantes
- de duración hasta la hora de llegada estimada
- distancia restante en automóvil
Para cumplir con las reglas, el valor de visibilidad de las polilíneas de ruta debe ser menor que sea igual o superior al valor establecido para la visibilidad del vehículo. En este ejemplo, el umbral de paradas restante de la polilínea se establece en 3, lo cual es inferior a el valor de 5 especificado para el vehículo Esto significa que, cuando el modelo viaje llega a 5 paradas de distancia de la ubicación de la tarea, el vehículo aparece, pero la ruta de ese vehículo no aparece hasta que el viaje está a 3 paradas de distancia.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
Las polilíneas de rutas y la ubicación del vehículo especifican las opciones de visibilidad diferentes.
Cuando las polilíneas de la ruta y la ubicación del vehículo tienen opciones de visibilidad diferentes, la ubicación del vehículo solo es visible cuando ambas opciones de visibilidad están satisfecho. Nuevamente, la visibilidad de la polilínea está sujeta a las reglas de visibilidad del vehículo:
- Siempre visible: Una polilínea de ruta debe usar la función siempre visible. cuando la ubicación del vehículo también proporciona la misma opción siempre de visibilidad.
- Nunca visible: Las polilíneas de rutas deben tener una visibilidad nunca visible. cuando la ubicación del vehículo usa la opción de visibilidad nunca visible.
Este es un ejemplo:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
En este ejemplo, la ubicación del vehículo solo es visible si la parada restante la cantidad es de al menos 3 Y la distancia en automóvil restante es de al menos 3,000 metros.
Ejemplo de personalización de la visibilidad de tareas
En los siguientes ejemplos, se muestra cómo configurar una tarea con las siguientes Reglas de visibilidad:
- Muestra las polilíneas de la ruta si el vehículo se encuentra a menos de 3 paradas.
- Muestra la hora de llegada estimada si la distancia restante en automóvil es inferior a 5,000 metros.
- Nunca mostrar el recuento de paradas restante.
- Cada otro campo conserva la visibilidad predeterminada que se muestra cuando el campo el vehículo se encuentre a 5 paradas de la tarea.
Consulta TaskTrackingViewConfig
para gRPC o REST.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTaskTrackingViewConfig(
TaskTrackingViewConfig.newBuilder()
.setRoutePolylinePointsVisibility(
VisibilityOption.newBuilder().setRemainingStopCountThreshold(3))
.setEstimatedArrivalTimeVisibility(
VisibilityOption.newBuilder().remainingDrivingDistanceMetersThreshold(5000))
.setRemainingStopCountVisibility(
VisibilityOption.newBuilder().setNever(true)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("taskTrackingViewConfig"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
Para establecer la ventana de configuración de la vista de seguimiento de tareas con HTTP, llama a PATCH
y
Usa updateMask
para actualizar el parámetro taskTrackingViewConfig
:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig
Por ejemplo:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=taskTrackingViewConfig" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"estimatedArrivalTimeVisibility": {
"remainingDrivingDistanceMetersThreshold": 5000
},
"remainingStopCountVisibility": {
"never": true
}
}
}
EOM