¿Por qué aprender a trabajar en entornos Web Mapping?
Las aplicaciones de mapas en entornos web o Web Mapping, se están convirtiendo en un requisito cada vez más y más común en los proyectos de SIG y, como profesionales de los Sistemas de Información Geográfica, a menudo este hecho nos puede sacar de nuestra zona de confort cuando se trata de desarrollar y desplegar este tipo de sistemas.
El Curso de Aplicaciones Web Mapping con GDAL, Geoserver y Leaflet intenta dar una respuesta a esto abordando las tres capas típicas de una arquitectura cliente-servidor orientado al desarrollo de una aplicación Web Mapping: datos, lógica y de presentación.
Podemos considerar el curso como una guía para crear aplicaciones web complejas mediante el uso de estándares abiertos y herramientas FOSS como GeoServer, Leaflet, Turf y GDAL para acceder y procesar los datos que se visualizarán.
¿Cómo es la arquitectura de los mapas en entornos web?
La arquitectura de un sistema cartográfico de mapas en entornos web puede implicar diferentes máquina físicas para crear, servir y usar un mapa web como el que se muestra el siguiente diagrama, en el que se representa las diferentes capas de arquitectura. Aunque en el curso el alumno utiliza su propio equipo para trabajar con todos estos niveles, es importante sin embargo entender cómo encajan las distintas capas en el desarrollo del conjunto.

Capas de datos geoespaciales
En un primer tema relacionado con la capa de datos geoespaciales se aborda el procesamiento de datos inicial, familiarizándonos con la ampliamente conocida biblioteca de geoprocesamiento ráster y vectorial GDAL. Es decir la preparación de la capa de datos que se publicará a través del servidor de mapas. Hay que tener presente que este no es un curso sobre procesamiento de datos geoespaciales, sin embargo sí se busca que el alumno pueda trabajar con grandes volúmenes de información mediante herramientas FOSS a través de las utilidades de línea de comandos de GDAL y OGR.
La librería GDAL/OGR está considerada como la navaja suiza para el acceso y tratamiento de datos geoespaciales, siendo uno de los pilares fundamentales de muchos de los proyectos de software GIS que muy posiblemente ya estés manejando. Por ello merece la pena conocer cómo utilizar el conjunto de herramientas GIS de bajo nivel que incorpora GDAL desde la línea de comando o programando nuestros propios scripts que las ejecute.

Estamos asistiendo a una gran revolución en el mundo de la sensórica.
El abaratamiento de los dispositivos, su bajo consumo y el amplio desarrollo de tecnologías afines que permiten conectar e intercomunicar redes de estos sensores ha supuesto que dispongamos de un tremendo caudal de datos. A ello hay que sumar una tendencia imparable a la apertura de estos.
Son tiempos interesante por las posibilidades que ofrecen los macrodatos, pero también de retos ya que todos este flujo masivo de datos (teledetección, Lidar, VGI, etc) implica conocer nuevas tecnología y estrategias más allá de los métodos habituales de geoprocesamiento de la información geográfica. Y es lo que se persigue en este tema: que el alumno descubra cómo el uso de las robustas herramientas de GDAL le permiten convertir y analizar grandes volúmenes de datos que por otro lado sería imposible a través entornos gráficos. Todo ello mediante la utilización de comandos o creando sencillos scripts en Python. Poder programar herramientas ETL (Extraction, Translate and Loading) para automatizar tareas son conocimientos muy valorados en la mayoría de los perfiles profesional GIS de hoy en día.
Es vibrante para un tutor comprobar como a alumnos que les daba inicialmente reparo la línea de comandos han comprendido el potencial de GDAL, viendo como se les abría una gran cantidad de posibilidades y que planean desde ese momento aplicarlo a su flujo de trabajo diario.
Capa lógica
Continuamos con la capa del servidor de aplicaciones con la instalación y configuración del servidor web Apache Tomcat y del servidor de mapas Geoserver. Geoserver no requiere mucha presentación: es uno de los servidores de mapas más conocidos y utilizados en todo el mundo. Posee una interfaz de administración amigable que permite instalar y comenzar a publicar sus datos geográficos muy rápidamente. El curso se adentra en la configuración de servicios OGC más conocidos (WMS, WMTS y WFS), la simbolización de capas mediante SLD, así como las estrategias de rendimiento y almacenamiento en caché de teselas mediante GeoWebCache, etc.
Por último el alumno experimenta con la instalación y configuración de extensiones que amplían las capacidades de GeoServer, en este caso a través del módulo para crear y ejecutar servicios de geoprocesamiento remoto bajo el estándar WPS, destinados a la publicación de cálculos, algoritmos y procesos geoespaciales.
Como en el caso anterior con GDAL, el recorrido de todo este tema se realiza casi exclusivamente a través de videotutoriales, intentando que el aprendizaje sea lo más ameno y visual posible. A modo de guía rápida el alumno podrá ver y descargar estos vídeos, donde se explica cada proceso paso a paso.
Capa de presentación
Finalmente el curso aborda la capa front-end mediante el desarrollo de aplicaciones web de mapas con el uso combinado de las librerías Leaflet y Turf.
A menudo te consultan cuál es la mejor librería JavaScript para un desarrollo de este tipo: OpenLayers o Leaflet. Y suelo contestar a esta cuestión con otra pregunta: «Depende, ¿cómo de complicada va a ser la aplicación cartográfica de tu proyecto web?» Como vemos la respuesta no es tan sencilla y por lo general esta se centra en función de los requisitos que nos imponen el cliente.
Crear aplicaciones con Leaflet suele ser más fácil porque presenta una curva de aprendizaje menor y haces más con menos. Pero por contra OpenLayers te permite construir prácticamente un interfaz GIS basado completamente en un entorno web. Esta es una librería más completa y a la vez compleja, que requiere de cierto esfuerzo para sacarle pleno partido. Contiene muchas características que vienen incluidas directamente en su núcleo, lo que a la postre también incrementa sus tamaño (¡¡la librería de OpenLayers prácticamente cuadruplica a la de Leaflet!!)
Leaflet en cambio es más minimalista, expandiendo sus acotadas capacidades iniciales mediante un gran ecosistema de plug-ins desarrollados por terceros (hay que mencionar que Openlayers también dispone de algunos componentes externos, aunque muy limitados en número). Esto puede suponer una debilidad, porque no tenemos garantía de que estos complementos de terceros se alineen con la última versión de Leaflet. Pero por contra es también su mayor virtud, porque no lastramos un desarrollo con funcionalidades que no utilizaremos (y si este fuese el caso es probable que ya se encuentren desarrolladas en la decenas de mejoras existentes para Leaflet).
Debemos ser críticos con las alternativas disponibles y preguntarnos por la funcionalidad de la aplicación que queremos desarrollar, intentando no dimensionar para la excepcionalidad sino para la generalidad. En definitiva evitar matar moscas a cañonazos cuando pensamos en elegir la mejor tecnología a la hora de desarrollar mapas en entornos web.
En el caso de Leaflet los puntos fuertes en su aprendizaje se centran en la simplicidad de uso y la facilidad de leer el código y comprender la estructura de una aplicación desarrollada con esta librería. Esto permite en unos pocos pasos crear una aplicación web de mapas típica con las características básicas que estamos acostumbrados a ver. Es ideal para pequeños mapas web destinados la visualización de geodatos.
Este tema se completa con la posibilidad de geoprocesamiento directamente en el navegador mediante Turf. Turf.js es una librería en JavaScript que permite realizar consultas y análisis geoespaciales. A diferencia de las librerías clásicas en Python, como PyQGIS o ArcPy, Turf no requiere de una conexión remota a un software GIS. Tampoco necesitaremos utilizar los servicios de procesamiento web (WPS), que implican una infraestructura compleja del lado del servidor. El análisis se puede realizar directamente en la aplicación web, desde el lado del cliente. Turf utiliza GeoJSON como formato de entrada y salida para sus métodos, por lo que hace a la librería compatible con prácticamente todas las API de mapeo web (incluyendo OpenLayers), no solo Leaflet.
En suma, Turf es ideal para el alumno. Le permite programar de manera simple muchas de las operaciones geospaciales que ya conoce, desde las más básicas a las más complejas (polígonos de Voronoi, envolventes convexas, buffers, cálculo de áreas, clustering, etc.), lo que le infunde motivación y estimula su aprendizaje y la creatividad a la hora de resolver los ejercicios. Ademas la biblioteca se encuentra muy bien documentada.

En resumen y recopilando, como se puede observar la arquitectura genérica cliente-servidor de tres niveles ampliamente utiliza es también la más empleada en aplicaciones GIS de mapas en entornos web, aunque es este caso con requisitos especiales motivados por las características y naturaleza especial (y espacial) de los geodatos, que implican técnicas y procedimientos particulares.
Puedes acceder a mi Curso de Aplicaciones Web Mapping con GDAL, Geoserver y Leaflet pinchando en la siguiente imagen. Con este curso explotarás todo tu potencial e incrementarás tus habilidades geoespaciales y posicionamiento laboral.
¿Quieres comentarnos algo? Adelante!