API de descripción general de la ruta

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);
}

Captura de pantalla en la que se muestra una imagen de descripción general de la ruta

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();