Las teselas vectoriales en JMap
Dernière mise à jour
Dernière mise à jour
K2 Geospatial 2022
Las teselas vectoriales son un formato de datos vectoriales muy apropiado para la cartografía web. El principio consiste en dividir el conjunto de datos vectoriales de un proyecto en teselas (tiles) de manera análoga a las teselas de datos matriciales (WMTS).
Existen varios estándares para producir teselas vectoriales. Mapbox ha propuesto un estándar basado en el código Protocol buffers (“Protobuf”) creado por Google (https://developers.google.com/protocol-buffers).
Las teselas vectoriales de Mapbox (mvt) son soportadas por una gran variedad de productos cartográficos entre los cuales se encuentra JMap Server a partir de la versión Jakarta.
El teselado es definido mediante una grilla que se aplica a los datos vectoriales, que son cortados entonces en teselas. Cada tesela puede contener los datos vectoriales (vectores) de varias capas.
Se produce un conjunto de teselas para cada nivel de escala. En la cartografía web se consideran en general 23 niveles de escala: el nivel 0 corresponde a la Tierra y el nivel 22 corresponde a la calle. Los vectores de los niveles inferiores son simplificados (generalizados) para optimizar la visualización de los datos y mantener las teselas de un tamaño adecuado para optimizar el rendimiento de las aplicaciones.
Los vectores (líneas, polígonos) que forman las geometrías de los elementos cartográficos de cada capa son cortados en las fronteras de las teselas. En los casos en que una geometría atraviesa la frontera entre dos teselas, la geometría es cortada y cada tesela contiene una parte de la misma. La aplicación cartográfica reunifica los vectores para obtener la geometría completa.
Las teselas incluyen también los atributos de los elementos cartográficos. Esto posibilita, por ejemplo, la visualización de temáticas creadas sobre la marcha o la visualización de datos de una capa en función de la aplicación de filtros basados en sus atributos. De esta manera los datos son muy dinámicos e interactivos.
Las teselas contienen entonces las geometrías y sus atributos pero no incluyen los estilos. La información que define los estilos se almacena y maneja en un archivo JSON separado. Esta característica permite que los usuarios de las aplicaciones definan estilos de manera dinámica porque son las aplicaciones que manejan los estilos, por lo que cuando se modifican los estilos no es necesario generar nuevas teselas.
Las teselas pueden crearse de manera anticipada y pueden ser puestas en caché para que las respuestas del servidor a las peticiones de la aplicación cartográfica web sean mucho más rápidas, lo que resulta en una representación muy fluida y eficiente de los mapas. Además, los mosaicos se pueden usar con WebGL para obtener un renderizado fluido y eficiente, especialmente en 3D.
Un proyecto JMap genera tres conjuntos de datos que son utilizados en las aplicaciones:
1 archivo de estilo en formato JSON. Este archivo acompaña las teselas vectoriales. Contiene la definición de cada capa incluida en las teselas vectoriales, sus parámetros de estilo, las temáticas, etc.
Un conjunto de teselas vectoriales que contienen las geometrías y los atributos de las capas no editables. JMap produce un archivo de formato mvt por tesela. Estas teselas pueden ser creadas a la demanda cuando los usuarios navegan en las aplicaciones JMap Survey o JMap NG. Pueden también ser creadas de manera anticipada y puestas en caché. Este artículo ofrece los detalles del procedimiento para producir y administrar el caché de teselas con JMap.
Datos vectoriales en formato GeoJSON. Los datos corresponden a las geometrías y los atributos de las capas editables. Estos datos son enviados a las aplicaciones a la demanda y por regiones.
Más allá del método de creación de las teselas, con antelación o a la demanda, las teselas son creadas siempre en el repertorio cache/mapbox de JMap Server. En ese repertorio hay una carpeta para cada proyecto (su nombre es el identificador del proyecto) y cada carpeta contiene una carpeta por cada nivel de resolución (actualmente son 512 niveles). Los archivos de las teselas se nombran siguiendo el código z-x-y.mvt donde z es el nivel de escala, x e y indican la posición de la tesela en la grilla. La figura muestra un ejemplo: las teselas .mvt en la carpeta del nivel de resolución 512 del proyecto 1.
En general las teselas vectoriales son más livianas que las teselas matriciales pero ciertos factores pueden afectar su tamaño e impactar en el rendimiento de las aplicaciones JMap Survey y JMap NG. El tamaño de las teselas afecta el tiempo necesario para producirlas, el volumen necesario para almacenarlas, el volumen de datos intercambiados con las aplicaciones y la memoria dedicada a las aplicaciones.
Los factores que deben considerarse son:
Cantidad de atributos vinculados a las capas: los datos de los atributos afectan el tamaño de las teselas, a medida que la cantidad de atributos aumenta, el tamaño de las teselas aumenta.
Rango de escalas de visibilidad de las capas: en el caso de capas con una densidad elevada de elementos, resulta útil establecer un rango de escalas de visibilidad de la capa. La estrategia consiste en limitar la visibilidad de las capas densas a escalas grandes. Des esta manera las teselas de las escalas pequeñas no incluyen los datos de las capas “densas”, lo que reduce el tiempo de producción de las teselas del proyecto.
Puesta en caché: la producción anticipada y puesta en caché de las teselas mejora notablemente el rendimiento de las aplicaciones y alivia la carga de trabajo de JMap Server, que puede saturarse cuando varios usuarios navegan las aplicaciones de proyectos muy grandes y complejos.
Memoria del servidor JMap: influencia el rendimiento de la producción de teselas. El aumento de la memoria dedicada al servidor JMap puede acelerar la producción de las teselas.