La API de Route Overview es un producto de la solución Last Mile Fleet DriverSDK. Con ella, puedes recuperar información de rutas para un vehículo determinado, ya sea como una recuperación única o de manera continua usando un objeto de escucha para las actualizaciones. El La API de Route Overview admite los siguientes tipos de información:
- Plan de ruta completo, incluidas las ubicaciones de las paradas de los vehículos, los tiempos de viaje y las distancias
- Es la trayectoria de la polilínea de la ruta entre cada parada.
En este documento, se describen los pasos de integración con la API para tu aplicación.
Requisitos previos
- Debes ejecutar tu aplicación para Android con la versión alfa.
de la versión 4.1.0 o posterior del DriverSDK. El canal alfa está disponible
mediante
transportation-driver-alpha
para el artifactId de Maven. - La API consume información de las rutas proporcionada por Fleet Engine a través del
API de entrega. Esto se puede proporcionar mediante las APIs en DriverSDK.
(
DeliveryDriverApi
) o directamente a Fleet Engine.
Pasos para la integración
En esta sección, se describen los pasos básicos necesarios para integrar tu app de controlador de Android con la API. Estas instrucciones tienen las siguientes suposiciones:
- Tienes una app para Android existente que ya se integró con el SDK de Driver
- Inicializaste el
DeliveryDriverApi
en tu app con un contexto. que puedes encontrar
Consulta Cómo comenzar a usar el SDK de Driver para Android para conocer los detalles.
Paso 0: Configuración de la ruta
Puedes omitir este paso si ya configuraste Fleet Engine y puedes crear tareas de paradas y entregas de vehículos.
Para cargar la información de las paradas y las tareas en Fleet Engine, necesitas un vehículo de entrega se asignó a una ruta válida. Esto se debe a que la API de Route Overview requiere claves las rutas para recuperar datos. Las rutas válidas se componen de una serie de puntos de referencia y paradas, y una parada solo puede existir si tiene al menos una parada tarea. Consulta la Guía de integración de la API de Flet Engine para obtener más información.
Paso 1: Inicializa la API
Una vez que establezcas una ruta válida con paradas y tareas asociadas, podrás
inicializamos la API de Route Overview. La inicialización proporciona el framework
necesaria para la conexión entre Fleet Engine y la API. La ruta
La API de Overview se debe inicializar con el mismo objeto de contexto que usaste para
inicializa DeliveryDriverApi
en DriverSDK, ya que el objeto hace referencia al
el mismo ID de vehículo que se definió antes en tu objeto DriverContext
. Lo siguiente
En el ejemplo, se muestra cómo crear una instancia de RouteOverviewApi
.
RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
api = RouteOverviewApi.createInstance(context);
}
Paso 2: Registra el vehículo para los eventos de cambio de ruta
Ahora que inicializaste la API, puedes usar VehicleRouteOverview
para interactuar con las capacidades de descripción general de la ruta. Esto permite que tus
para consumir la información de ruta que proporcionó durante su configuración.
Usa el objeto de escucha de eventos de la API para facilitar las actualizaciones de eventos y la recuperación de rutas.
Un evento de cambio de ruta se produce cada vez que la ruta hacia cualquiera de las paradas asignadas a se actualiza el vehículo, se reorganiza una parada o cuando Fleet Engine actualiza la Información sobre la hora de llegada estimada.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Paso 3: Habilita la API
Ahora que estás listo para consumir información de rutas, debes habilitar la API para le permiten responder a eventos del vehículo. Recuerda que la API se inicializa inhabilitado para evitar un consumo innecesario de ancho de banda de red.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Puedes pausar estas actualizaciones en cualquier momento llamando al mismo método con el
valor de false
.
Paso 4: Dibuja la ruta en un mapa de Google Maps
Una vez que obtengas una lista de objetos RouteToVehicleStop
, podrás usarla en tu
y mantener la integridad de su aplicación. Por ejemplo, puedes dibujar la ruta de la polilínea de la ruta en un mapa de Google Maps
instancia. En el siguiente fragmento de código, se muestra un ejemplo que traza la ruta
polilínea en la vista de mapa y agrega marcadores en la parte superior de cada ubicación de parada.
GoogleMap googleMap = … // Instance of the Map view you are using
ImmutableList<RouteToVehicleStop> route = event.newRoute();
PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
for (RouteToVehicleStop stop : route) {
routePolyline.addAll(stop.path());
MarkerOptions marker =
new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
googleMap.addMarker(marker);
}
googleMap.addPolyline(routePolyline);
}
Esto da como resultado una vista similar a la captura de pantalla de la derecha:
Paso 5: Obtén un resumen de la ruta
Si quieres que tu app emita una llamada única para recuperar una instantánea de la información de ruta actual, puedes usar el siguiente método para recuperar esa datos:
ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();
Puedes hacerlo en lugar de suscribirte a actualizaciones de rutas a través de objetos de escucha de eventos.
Paso 6: Limpieza
Si tu app ya no necesita la funcionalidad de descripción general de la ruta, debes asegurarte limpiaste. Hacer una limpieza evita la memoria, el procesamiento y el consumo de red en tu aplicación.
Quita un objeto de escucha de eventos específico
Debes quitar un objeto de escucha de eventos cuando un objeto de escucha específico ya no esté necesario.
vehicleRouteOverview.removeOnRouteChangedEventListener(listener);
Borra todos los objetos de escucha de eventos
Como parte de tu rutina de limpieza, puedes quitar todos los objetos de escucha de eventos diferentes registrados a la vez.
vehicleRouteOverview.clearEventListeners();
Borrar la instancia de la API de descripción general de rutas
Cuando ya no se necesita la descripción general de la ruta o se cambia el ID del vehículo del que se hace seguimiento, puedes llamar a esta API para borrar las referencias internas.
vehicleRouteOverview.clearInstance();