Aplicaciones móviles SIG

posted in: Divulgación | 0

En esta publicación queremos mostrar algunas aplicaciones desarrolladas por nuestros estudiantes de la asignatura Desarrollo de aplicaciones SIG móviles, muchos de ellos sin conocimientos previos de programación móvil e incluso algunos de ellos sin conocimientos previos de programación antes de iniciar el máster.

A la vuelta de vacaciones explicaremos más detalles de las tecnologías y el marco de trabajo utilizados en la asignatura, y publicaremos un ejemplo de cómo realizar paso a paso una aplicación móvil sencilla que ubique al usuario y permita visualizar su posición en un mapa.  Ahora sólo adelantamos que hemos optado por desarrollar aplicaciones móviles híbridas con Apache Cordova (https://cordova.apache.org/), utilizando el framework y entorno de desarrollo Adobe PhoneGap (http://phonegap.com/), con sus utilidades PhoneGap Desktop, PhoneGap Developer App y Adobe PhoneGap Build. Esto nos permite crear fácilmente aplicaciones móviles con los conocimientos de HTML, CSS y Javascript vistos en la asignatura de Desarrollo de aplicaciones SIG en Web. Para la parte visual hemos utilizado el framework Onsen UI 2.0 (https://onsen.io/v2/) y cada estudiante pudo escoger la librería Javascript que más le gustaba para la visualización de mapas. Como curiosidad, casi todos optaron por Leaflet (http://leafletjs.com/), haciendo uso de diferentes servidores de mapas. Para la persistencia de datos se han utilizado diferentes técnicas (LocalStorage, WebSQL, el plugin File de Apache Cordova, …).

Aquí algunas de las aplicaciones:

GeoLeft

Permite recordar al usuario dónde ha dejado el coche aparcado y darle una referencia de la distancia que le separa del lugar donde está el coche.  

DASM2016107-GeoLeft

En la vista principal se muestra un mapa. Una vez que se pulsa el botón de “Parked” se queda almacenada la posición del coche, que se recuperará cuando se vuelva a iniciar la aplicación. Si se pulsa en el botón “How much is left” se muestra la distancia del usuario al coche y se pueden ver las posiciones en un mapa. La distancia y posición del usuario se irán actualizando en tiempo real. En el momento en el que la distancia es menor de 10 metros se muestra un mensaje felicitando al usuario por llegar al vehículo y el teléfono vibra. Para obtener la distancia se ha utilizado Turf (http://turfjs.org/).

MyMood

Permite obtener la ruta entre dos puntos definidos por el usuario.  Las rutas pueden calcularse para diferentes tipos de medios de transporte (coche, a pie o bicicleta). Además de la ruta visualizada en el mapa, se obtiene el tiempo estimado de llegada, la distancia, rutas alternativas y el direccionamiento paso a paso. Además es posible almacenar las rutas para visualizarlas posteriormente.

DASM2016107-MyMood

Al iniciar la aplicación se muestra un mapa. En ese mapa se pueden pinchar en dos puntos, que serán los puntos de inicio y fin. Cuando se pincha en el punto de destino, automáticamente se calcula la ruta y se muestra en el mapa. Además también se muestran los nombres de las direcciones del punto de inicio y del punto de fin. Se puede cambiar de medio de transporte (lo que implica recalcular la ruta) o mostrar la ruta paso a paso. Las rutas se pueden almacenar para visualizar en el futuro.

La aplicación necesita conexión para funcionar. En caso de que no exista conexión a internet, se deshabilita la aplicación utilizando una ventana modal y no permite utilizar ningún icono. Para obtener las rutas se utiliza la API de Mapbox Directions (https://www.mapbox.com/directions/).

Aplicación para localizar y clasificar fotos

Permite sacar fotos y asignarles una categoría, de forma que se tienen las fotos son geolocalizadas en la ubicación en la que se encuentra el usuario al sacar la foto, y clasificadas con la categoría asignada. En caso de ser necesario, se pueden añadir categorías que no existan anteriormente. Posteriormente se pueden visualizar en el mapa todas las fotos o seleccionar las categorías que se quieren visualizar.

DASM2016107-Fotos

Las ubicaciones donde hay fotos se muestran con un icono: una estrella si se han sacado en la actual ejecución de la aplicación, o con otro marcador en caso de que sean fotos sacadas en anteriores ocasiones (al arrancar la aplicación permite la opción de recuperar o no recuperar fotos antiguas). En ambos casos se puede visualizar la foto y sus propiedades cuando se pincha en la foto.

Localizador de wifis

Permite almacenar puntos wifi conocidos por el usuario e indica cómo llega al más cercano. Para ello, se muestra cuánto falta para llegar a ese punto wifi y por dónde se tiene que ir (mediante una flecha).

DASM2016107-WIFIs

La pantalla principal muestra en un mapa todos los puntos wifi almacenados y muestra una flecha que apunta al punto wifi más cercano. Hay otra vista posible en la que sólo se muestra la flecha, sin mapa, y el movimiento de la flecha se ajusta en función de la posición del usuario y de la posición (orientación) del teléfono. También se muestra la distancia al punto wifi y un botón donde se pueden registrar nuevos puntos wifis.

Además de completarlo con una parte servidora que permitía registrar y sincronizar los puntos wifi, una parte importante del desarrollo de esta app fue la animación de la flecha, ya que no era trivial que la flecha rotase en función del movimiento del teléfono y que fuese suficientemente fluida (una de las desventajas de las aplicaciones híbridas es que no se puede aprovechar toda la potencia gráfica de los dispositivos móviles, pero a pesar de eso, se consiguió un resultado muy bueno).

Mis playas

Esta aplicación permite guardar la localización de las playas favoritas de un usuario. Cuando arranca comprueba la conexión de red, de forma que si no hay conexión se cierra la aplicación, si se está conectado por red móvil se recuerda que la aplicación puede consumir un elevado volumen de datos y se confirma con el usuario que desea continuar y con conexión wifi continúa sin problemas. Posteriormente el usuario se puede localizar y guardar su localización.

DASM2016107-Playas
En esta aplicación también permitiría cargar una capa WMS de playas obtenida del servidor de INTECMAR (Instituto Tecnolóxico para o Control do Medio Mariño de Galicia) que mostraría las zonas de baño de las playas con sus nombres.