
En una entrada anterior del blog hablamos sobre las teselas vectoriales y sus diferentes ventajas frente a las tradicionales teselas ráster, que las convierten en una tecnología con una gran proyección, cuyo uso se encuentra cada vez más extendido a la hora de poner en marcha servicios de mapas. En esta entrada nos gustaría centrarnos en una de las principales características de este tipo de teselas que, si bien supone una clara ventaja por permitir una mayor personalización de los mapas, también añade una mayor complejidad: nos referimos a la creación de estilos.
A diferencia de las teselas ráster, donde el estilo de visualización se lleva a cabo en el servidor, en las teselas vectoriales la visualización de los datos se realiza en el cliente (aplicación, móvil o de escritorio, o navegador de Internet), dando así total flexibilidad a los desarrolladores de aplicaciones a la hora de crear estilos a sus mapas. El principal problema que tienen que afrontar estos desarrolladores viene impuesto entonces por la librería de visualización utilizada, donde la configuración de los estilos puede ser más o menos compleja en función de la opción elegida. Sería interesante por lo tanto contar con un mecanismo estándar que facilite la definición de estilos de las teselas vectoriales y que sea aceptado por las diferentes librerías de visualización, similar a lo que ocurre con la especificación Styled Layer Descriptor (SLD) y los distintos frameworks para la publicación de información geográfica mediante servicios web estándar (GeoServer, Deegree, Mapserver, etc).
Mapbox, como principal proveedor en la actualidad de servicios web de mapas basados en teselas vectoriales y una de las empresas que más apuestan por esta tecnología, es consciente de este problema y por ello ha desarrollado una especificación abierta para la creación de documentos de definición de estilos en formato JSON. Esta especificación, denominada Mapbox Style Specification, describe la estructura que deben tener estos documentos, donde se indica, entre otros aspectos, las direcciones de los servidores de mapas, las capas que se desean pintar, cómo hacerlo (color, grosor, utilización de iconos, etc) y cuándo (escalas máximas y mínimas, filtros en función de atributos de las entidades geográficas, etc). Se trata de una especificación bastante potente, que ofrece muchas posibilidades de configuración, por lo que, en cierto modo, podría resultar complicada de utilizar a desarrolladores no expertos en la materia.
Para facilitar la creación de documentos conforme a la especificación de Mapbox, existe un proyecto de software libre, denominado Maputnik, donde se ofrece un editor gráfico para la definición de estilos sobre teselas vectoriales. Este editor puede instalarse localmente o utilizarse online. Permite dar de alta nuevos servicios de mapas y editar la configuración específica de cada una de sus capas. Una vez terminada la edición, se puede exportar el resultado a formato JSON.
El principal problema que tiene el editor de Maputnik es que necesita como fuente de datos un servicio de mapas con interfaz XYZ. Por lo tanto, si el servicio de mapas que se desea utilizar sólo ofrece la interfaz WMTS o TMS, no se podrá utilizar directamente como fuente de datos de Maputnik. Sería necesario, por ejemplo, poner en marcha un proxy que transforme las peticiones desde una interfaz a otra.
Una vez creado el JSON de estilos, se puede utilizar directamente para configurar un visualizador creado con Mapbox GL JS y, a pesar de que otras librerías no tienen soporte para ello, sí que existen ciertos plugins desarrollados para cargar estilos de Mapbox en Openlayers y Leaflet, con mayor o menor acierto, que se espera sigan evolucionando para dar soporte a esta funcionalidad cada vez más demandada.
Como demuestran las utilidades anteriores, las teselas vectoriales son una realidad que cada vez tiene más aceptación y para las que día a día van surgiendo nuevas soluciones técnicas y tecnológicas que mejoran sus prestaciones y facilitan en gran medida su manejo y puesta en marcha.