30 Abr 2013 Cosas que hacer en compañía de OSM (IV)
Tematización de datos
En este cuarto post hablaremos del proceso de generación de mapas con datos de OpenStreetMap (OSM) utilizando un estilo personalizado, para posteriormente servirlos a través de un geoservicio WMS. Para ello, se hará uso de PostGIS, TileMill, OSM Bright y mbtiles.
Almacenar en PostGis los datos de OSM
Antes de empezar a tematizar y generar un mapa con datos procedentes de OSM, hay que determinar el lugar en que almacenar estos datos. Dado que el volúmen de información con el que se trabaja suele ser muy grande, una de las formas más eficientes para ello es utilizar una base de datos espacial, como PosGIS.
Desde el sitio web http://metro.teczno.com pueden descargarse datos de OSM en formato .pbf, que podrán ser importados a una tabla de PostGIS con Imposm (http://imposm.org/docs/imposm/latest/). También podrían usarse datos en formato .osm descargados de cloudmade (http://downloads.cloudmade.com/).
Diseño del mapa con TileMill
TileMill es un software que permite el diseño cartográfico, de forma rápida y eficaz, de los datos procedentes de OSM almacenados en la base de datos PostGIS. Presenta una ventaja comparativa muy grande en relación a las herramientas de tematización y diseño que ofrecen en general los paquetes SIG, al ser mucho más ágil y permitir un amplio abanico de posibilidades. Los mapas generados pueden llegar a presentar un nivel de calidad muy elevado. Además, con TileMill pueden desarrollarse estilos e irlos reaprovechando.
El principal inconveniente de TileMill está en la elaboración de los estilos. Estos deben crearse para cada una de las entidades que configuran la cartografía, y para cada uno de los niveles de zoom con los que se quiera representar. Todo ello implica un trabajo laborioso, al que habrán de destinarse algunas horas de trabajo si quiere conseguirse un mapa original y estético.
El lenguaje con el que se configuran los estilos en TileMill es CartoCSS, muy similar al CSS.
Las fuentes de datos que admite TileMill son las siguientes: CSV, Shapefile, GeoJSON, KML, GeoTIFF, SQLite y PostGIS. El abanico es muy amplio, por lo que no debería haber problemas para crear mapas con los datos generados desde un Sistema de Información Geográfica (SIG).
Hay que tener en consideración que los mapas generados con TielMill se proyectan siempre a ‘Web Mercator‘, y en caso que las fuentes de datos utilizadas no estén en este sistema de referencia, TileMill las reproyectará automáticamente.
Finalmente, una vez desarrollado el mapa desde TileMill, este puede exportarse a MBTiles, PNG, PDF y SVG. De todos ellos, el formato más eficiente para publicar el mapa en entornos web o móviles es MBTiles. También para poder servir el mapa generado a través de un WMS.
Toda la información acerca del proyecto TielMill, así como el archivo para su instalación (tanto en entornos Windows, Linux y Mac OS X), se encuentra en http://mapbox.com/tilemill/
Aplicar el estilo de OSM Bright
OSM Bright (https://github.com/mapbox/osm-bright) es una plantilla de estilos predefinida para TileMill diseñada para la tematización de datos de OSM. El uso de OSM Bright es de gran utilidad, ya que evita el proceso de creación de estilos para cada una de las entidades de la cartografía, y para cada uno de los niveles de zoom. Asimismo, y en caso de querer diseñar un estilo único y personalizado, el uso de esta plantilla resulta un buen punto de partida a partir del cual ir haciendo modificaciones.
En la página web del proyecto TileMill se detalla todo el proceso a seguir para descargar y configurar OSM Bright, y poder utilizarlo en la tematización de nuestros datos de Open Street Map almacenados en una base de datos PostGis: http://mapbox.com/tilemill/docs/guides/osm-bright-ubuntu-quickstart/
Apuntar que el proceso de carga en TileMill de los datos de OpenStreetMap tematizados con los estilos de OSM Bright se demora bastante tiempo. Esto ocurre la primera vez, y dependiendo del volumen de datos con los que se trabaje. Luego el proceso es mucho más rápido.
Fig 1. Mapa con estilo de OSM Bright
Servir el mapa generado como WMS
Para servir el mapa generado con TileMill a través de un servicio Web Map Service (WMS), una buena opción es utilizar MapProxy (http://mapproxy.org/). MapProxy es un proxy de código abierto que ofrece soluciones de cacheado, aceleración y transformación de datos geoespaciales tanto para entornos web como de escritorio. De este modo, los tiles generados con TileMill y guardados en el formato mbtiles pueden servirse como un WMS.
MapProxy es multiplataforma, y su proceso de instalación y configuración está muy bien documentado en la misma página web del proyecto: http://mapproxy.org/docs/1.5.0/
Los parámetros de configuración para servir mbtiles también están especificados: http://mapproxy.org/docs/1.5.0/caches.html#mbtiles
Conclusión
Siguiendo este proceso, se consigue disponer de un servicio WMS con datos de OpenStreetMap y con un estilo personalizado. A partir de ahí, puede aprovecharse este WMS como base cartográfica para la generación de mapas desde un Sistema de Información Geográfica.
Fig 2. Esquema del proceso