Adrianistán

Ruta x ruta x Castilla y León

08/11/2021

Recientemente se anunció que mi proyecto Ruta x Ruta x Castilla y León resultó ganador del V Concurso de Datos Abiertos. Modalidad de Productos y Servicios: premio de estudiantes. El concurso consitía en usar los datos abiertos proporcionados por la Junta de Castilla y León para construir algo interesante. Desde aquí quiero dar las gracias a los organizadores y además quiero invitaros a qué vosotros probéis también la aplicación web (si vivís en Castilla y León claro).

A continuación copio íntegramente la memoria del proyecto, de modo que sirva de documentación de la propia aplicación por si alguien tiene interés.

Objetivo

Ruta x ruta x Castilla y León es una aplicación web para consultar rutas (tanto de senderismo, como de bicicleta, etc) y subir nuestros tracks (grabaciones GPS) de modo que otras personas puedan verlo. La diferencia principal de esta aplicación respecto a otras existentes en el mercado es precisamente el uso de fuentes de datos abiertos para enriquecer la información de la ruta. A través de Ruta x Ruta no solo es posible ver el recorrido de la ruta y una descripción, sino puntos de interés alrededor de ella (monumentos, bares/restaurantes y eventos).

Funcionalidades

Consultar rutas

Desde la página principal de la aplicación podemos ver rutas existentes y realizar búsquedas simples.

Al hacer click sobre una, veremos la ruta sobre una ortofoto o un mapa, marcando el punto de partida y de fin. Además veremos los monumentos, bares y eventos cercanos si los hubiese. Estos puntos de interés se calculan de forma automática al hacer la visualización. Al hacer click sobre ellos veremos un desplegable que nos da información sobre el punto de interés y este se marcará en el mapa. También veremos tracks subidos por los usuarios relacionados con esta ruta.

Consultar un track

Cualquier usuario puede ver los tracks públicos. Estos incluyen un mapa del recorrido, marcando la velocidad (siendo verde rápido y rojo lento), un resumen de algunas métricas y un gráfico de altimetría.

Subir un track

Los usuarios que han iniciado sesión (mediante Google), pueden subir tracks para compartirlos en la red. Además pueden asociarlos a una ruta ya publicada. Se incluye una pequeña previsualización antes de subir el track.

Proponer ruta

Los usuarios que han iniciado sesión pueden proponer rutas nuevas mediante el editor de rutas. Funciona haciendo click sobre el mapa para agregar un nuevo punto, que se une al anterior mediante una línea recta. Podemos eliminar el último punto introducido haciendo click sobre el marcador azul.

Ver perfil de usuario

Es posible ver los tracks subidos por un usuario mediante su enlace a perfil (accesible a los usuarios que han iniciado sesión haciendo click en su nombre). Desde allí se pueden ver todos los tracks subidos, así como borrar los que ya no le interese mostrar al usuario.

Fuentes de Datos Abiertos usadas

El producto Ruta x ruta usa las siguientes fuentes de datos abiertos:

Arquitectura y tecnologías usadas

La aplicación Ruta x Ruta tiene cuatro componentes principales, a saber:

Base de datos. Allí se almacena todo lo relacionado con la aplicación, desde los puntos de interés hasta los tracks de los usuarios. Se trata de una base de datos MongoDB, funcionando sobre el servicio en la nube, MongoDB Atlas. Una de las características más interesantes de esta tecnología es la posibilidad de hacer consultas geográficas.

Backend. El componente “cerebro” que lee y escribe datos en la base de datos y expone una API REST para el frontend. Además gestiona la autenticación (via Google OAuth) y realiza el procesado de los tracks. Está hecho en Kotlin usando el framework Ktor y alojado en la nube Microsoft Azure.

Frontend. La capa visual con la que interactúan los usuarios. Realiza llamadas al backend con las operaciones deseadas. Está hecho en React y JavaScript y alojado en el servicio Netlify.

Ingesta. Una serie de scripts escritos en JavaScript que obtienen los datos de los puntos de interés, los procesan y los guardan en la base de datos.

Ideas futuras

Bien por falta de tiempo o falta de recursos se han decidido descartar varias ideas. Se comentan brevemente.

Vídeo

Conclusiones

En definitiva, se plantea una aplicación web para ver rutas que indican de forma automática los puntos de interés que hay alrededor. Estas rutas son creadas por los usuarios usando el editor interactivo, y previa moderación, se publican para todo el mundo. El uso de datos abiertos abarca dos categorías: mapas/ortofoto y puntos de interés geolocalizados. Además se permite subir tracks GPS a los usuarios. Si bien esta funcionalidad usa una parte más limitada de datos abiertos, se considera interesante para hacer la aplicación más interesante.

Tags: programacion kotlin datos abiertos mapas memoria premio concurso