martes, 3 de febrero de 2015

Publicar mapa web de QGIS.

Después de mucho trastear sobre una manera cómoda y sencilla de publicar un mapa web elaborado por nosotros y accesible a todo el mundo a través de un simple navegador, hemos dado con una fórmula que creo que os va a gustar. Se trata de transformar nuestro mapa a la carta a una estructura open layers html mediante un plugin disponible en QGIS para ello. El resultado no puede ser más espectacular y, sobre todo, accesible y universal, pues no requiere la creación de complicados servidores ni el uso de infumables softwares. Si no podéis esperar a leer el artículo para ver el resultado, aquí tenéis el enlace:


El resumen de los pasos a seguir es el siguiente:
- Elaborar el mapa en QGIS a base de servicios wms y vectoriales (en teoría se puede hacer incluyendo también capas ráster, pero aún no le he cogido el truco y no me funciona).
- Aplicarle el plugin Export to OpenLayers 3 disponible en QGIS, cuya web es https://github.com/volaya/qgis-ol3 y cuya explicación de manejo la tenemos en https://github.com/volaya/qgis-ol3/blob/master/doc/usage.rst Muchas gracias a Victor Olaya por este fantástico plugin, que aún figura como experimental.
- Los archivos generados los subimos a Google Drive, en una carpeta que compartimos como pública, ya que Drive nos permite servir páginas web gratuitamente como si se tratara de un servicio de hosting. El proceso está muy bien explicado en esta web http://norfipc.com/web/como-crear-sitio-web-gratis-subiendo-paginas-google-drive.html
- Generamos el enlace y ya está disponible vía web nuestro mapa para todo el mundo.

Vamos pues a ello.
Para este ejemplo hemos preparado un mapa de la famosa Ruta del Cares, en plenos Picos de Europa. Hemos buscado el track en Wikiloc (que también contenía unos waypoints del recorrido) y lo hemos cargado en QGIS rodeándole de unas cuantas capas del servicio wms Mapa Base del IGN, abierto y público para todo el mundo: transportes, caminos, toponimia, hidrografía, edificios, curvas de nivel y sombreado de relieve. También hemos añadido los dos servicios wms básicos como son el mapa topográfico del IGN, y las ortofotos PNOA. Como veis, material en abundancia. No nos importaba que alguna de estas capas fueran opacas y, por tanto, taparan a otras, pues nuestro mapa web nos permitirá activarlas o desactivarlas, y lo que queríamos era tenerlas disponibles en nuestro producto para luego poder elegir cual de ellas visualizamos.
Todos los elementos de nuestro mapa cargados y preparados en QGIS para proceder a aplicar el plugin.
Una vez tenemos todo lo que queremos tener en nuestro mapa, aplicamos el plugin cuyo funcionamiento y opciones están explicados en los enlaces que os he puesto más arriba. Como os he comentado el plugin asegura funcionar también con capas raster, tendremos que investigarlo más. Seleccionamos algunas opciones interesantes, como que se nos muestre una ventana pop-up con la info de la tabla de atributos de los vectoriales al pasar el ratón por encima, o el mapa base que nos ofrece el plugin (OSM en este caso), y lo ejecutamos.
Plugin OpenLayers 3 con las opciones al gusto seleccionadas y preparado para ejecutarse.
Los archivos resultantes se guardan en el directorio que hayamos elegido, con la siguiente estructura: un archivo base index.html y una serie de carpetas adjuntas conteniendo los datos del mapa
Estructura de archivos creada por el plugin dentro de nuestra carpeta CaresMAP.
Dicha carpeta (CaresMAP) la subimos a Drive, y en las opciones de compartir pondremos acceso público, según la secuencia básica de la siguiente captura:
Como bien se explica en el enlace que os dejé arriba, abrimos nuestra carpeta compartida y la url que se nos ofrece en el navegador la cambiamos por la url necesaria para que Drive nos haga de host al ejecutarla.
Y con eso ya tenemos nuestro enlace, que es el que nos da acceso al mapa en cualquier navegador como habréis comprobado al pinchar en el del comienzo del artículo. Ahora podemos jugar activando o desactivando las diferentes capas, de forma que en un mismo mapa tenemos muchas posibilidades de visualización diferentes del mismo terreno. Además, el mapa no es limitado, con lo que podemos alejarnos con las mismas capas a otra zona muy distante de la elegida como vista inicial del mapa. También podéis ver cómo al pasar nuestro puntero por encima del track o de los waypoints, una ventana se nos abre automáticamente mostrando la información que hayamos seleccionado mostrar.
Me parece que las posibilidades de este plugin de QGIS, combinado con la posibilidad de alojar los mapas en Drive, son maravillosas e innumerables; y eso que, como dijimos, no está incluida ninguna capa ráster (mapa físico) sino solamente servicios wms. Si conseguimos hacerlo, la combinación de ráster, más vectoriales, más servicios wms, harán que las posibilidades de publicar fácilmente nuestros mapas en la web sean casi infinitas. Eso, y que Google no decida cualquier día cambiar las características de Drive, claro. Por si acaso, lo he comprobado en Dropbox y el sistema también funciona (aquí basta con subir la carpeta de nuestro mapa a la carpeta Public de Dropbox y copiar el enlace para el archivo index.html ). Este es el enlace: https://db.tt/OwJnHaWl
Un saludo.
PD: hace ya tiempo que los almacenamientos en la nube eliminaron la posibilidad de hacer de hostings gratuitos para estas pequeñas cosas, por lo tanto lo explicado en este artículo ya no funciona.

12 comentarios:

  1. Javi, ¿existe la posibilidad de configurar los iconos de los waypoints?. El pop-up de los waypoints admite html (los veo algo toscos...), para que nos de la oportunidad de meter imágenes, enlaces, etc....
    joe que pregunton estoy.....

    Un abrazo

    ResponderEliminar
    Respuestas
    1. Juraría que si... En teoria el plugin representa los waypoints con el icono que hayas puesto en QGIS, y en QGIS son bastante variados y configurables. Así que debería funcionar.
      Sobre si admite html ya me pillas... Coge los atributos que tenga el waypoint en su tabla, ya no se si habrá alguna forma de meterle html.... Cosas a investigar. ;-)

      Eliminar
  2. Impresionante. Gran herramienta para publicar, por ejemplo, mapas vectoriales "caseros" sobre cartografía WMS y compartirlos fácilmente.

    Ahora no tengo tiempo pero me viene bien para algún proyecto pendiente.

    Muchas gracias, Javi. No descansas.

    ResponderEliminar
  3. Estoy intentando exportar una capa raster... talves ya lo has conseguido ??

    ResponderEliminar
    Respuestas
    1. Hace un tiempo que no pruebo Lupe... Están actualizando el plugin bastantes veces estos tiempos y no he vuelto a probar. No te funciona?

      Eliminar
    2. Nooo..... he visto en el archivo layers.js en la capa raster hace referencia a un archivo jpg, entonces lo que hice fue convertir la capa raster en jpg y guardarla en la carpeta layers, pero de igual manera no se visualiza en el mapa

      Eliminar
  4. Hola! Estoy intentando publicar un mapa web con un par de tracks en formato gpx. El caso es que en QGIS los visualizo perfectamente, pero al ejecutar el plugin no aparecen los tracks por ningun lado... Sabes qué puede ser, Javi?

    Muchas gracias de antemano

    ResponderEliminar
    Respuestas
    1. Disculpa la tardanza Xabier... Imagino que estás usando el plugin del artículo; no se qué puede ser, los plugin se actualizan muy a menudo y yo diría que son experimentales y fallan bastante. De todas formas si quieres hacerme llegar los track y hago la prueba a ver si descubro algo... machorril@gmail.com
      Saludos!

      Eliminar
  5. Al final lo conseguí utilizando el plugin qgis2web (y convirtiendo previamente los gpx en un shp). Si no no me aparecían los tracks, lo hice varias veces. Y lo alucinante es que ahora no se pueden hacer desaparecer del mapa, aunque se deseleccionen. Un misterio, aunque en este caso no me importa. Utilizo Macintosh, no sé si tendrá algo que ver, y la versión 2.6 de Qgis.

    Gracias de todas formas, por ahora con esta solución ya me vale. Si lo quieres ver, este es el mapa: https://9837c0c234562de79ef145ebbbde7460f53fbc4a.googledrive.com/host/0B5s87EtexczxaG5DZGFoNlJFdHM/

    Un saludo!

    ResponderEliminar
    Respuestas
    1. Bueno me alegro que te valga Xabier... El plugin qgis2web se actualiza cada dos por tres, esperemos que al final resulte un producto completo y sin errores (me da que hasta ahora siempre hace algunas cosas raras). He mirado tu mapa y está muy bien, lo de los tracks no se, a veces los puedo encender y apagar y a veces no y me da la impresión de que uno debería ser el morado y otro el rojo, no? Es que si se apagan se apagan juntos. Pero bueno, ahí seguimos investigando y enhorabuena por conseguirlo.

      Eliminar
  6. Los links que explican como se utiliza el open layer están malos?

    ResponderEliminar
    Respuestas
    1. Pues eso parece... Esto de los plugins es un poco inestable, lo mismo están que ya no existen: un caos. Ahora el plugin más recomendable y activo para esto de hacer mapas web parece qgis2web. Su repositorio está en https://github.com/tomchadwin/qgis2web. Saludos!!!

      Eliminar