23 Mar Formato vectorial en mapas
A la hora de publicar mapas en internet, actualmente podemos optar por 2 tipos de publicaciones, según sus características. Publicar en raster o en vectorial.
En otra entrada, explicando cómo generar cartografía offline, ya vimos que eran las teselas raster, por si quieres refrescar la memoria sobre ello.
Vamos a ver técnicamente que es publicar información geográfica en formato vectorial, los distintos tipos de formato, sus características, pros y contras y cómo publicar teselas en formato .pbf o .mvt, que actualmente es el formato más avanzado de publicación, y que se suele hacer en forma de tiles (teselas), para su publicación y organización más rápida y eficiente.
Este artículo no es de formatos vectoriales de entrada, sino de salida, es decir, con qué formatos de salida podemos “Pintar” un mapa.
¿Qué es un formato vectorial?
Un formato vectorial de mapa es conjunto de líneas, polígonos o puntos almacenados y definidos matemáticamente para que formen elementos. Al contrario de los formatos raster, que ya comentamos en otros posts que eran imagenes almacenadas, no pixeliza al hacer zoom sobre él, ya que son un conjunto de reglas matemáticas que forman el objeto, no un objeto estático en sí mismo, como podría ser el raster. Al ser otro concepto totalmente distinto, no dependen de la resolución de la imagen a la hora de ser dibujados con precisión.
Al igual que existen diferentes formatos raster (png, jpg, ecw …), también existen multitud de formatos vectoriales. Cada uno de ellos tiene sus pros y sus contras, y será la experiencia la que nos dicte cuando nos conviene usar uno u otro.
GeoJSON.
Este es un estandar muy utilizado para representar elementos geográficos sencillos. Contiene 2 partes, la gráfica propiamente dicha y la alfanumérica vinculada, y es un formato de texto plano, no comprimido ni codificado. Se puede leer con cualquier editor de texto normal. Está codificado en el formato WKT (Well Known Text) del OGC (Open Geospatial Consortium)
Este formato permite intercambiar información de manera rápida, sencilla y ligera, pero no está diseñado para la publicación masiva de cartografía. Sus geometrías se pueden clasificar en 3 tipos: puntos, lineas y polígonos, pudiendo formar colecciones de los 3 tipos.
TopoJSON
Extensión del anterior GeoJSON, codificado con topología geoespacial y que pesa menos que GeoJSON.
TopoJSON elimina redundancias en la geometría, por ejemplo, 2 elementos poligonales que comparten un lado, TopoJSON elimina una de las líneas, ya que no es necesario representarla y así evita duplicidades.
Además, cuantifica las coordenadas, lo cual quiere decir que realiza una traslación y transformación basada en la escala que transforma las coordenadas decimales en números enteros, reduciendo así el peso del fichero. Puede suponer una pérdida de peso de hasta el 80%.
GML
GML es el acrónima de Geography Markup Language, el estándar de la OGC para representar información espacial. Está basado enteramente en XML, constituyendo un sublenguaje del mismo.
Actualmente es el lenguaje utilizado por el catastro para regular el intercambio de información espacial entre ellos y los registros de la propiedad.
MVT
MVT (Mapbox Vector Tiles), es el último y más avanzado formato de representación gráfica vectorial. Es un formato que utiliza la codificación PBF de Google, que es un formato binario comprimido. Las teselas vectoriales son un estandar abierto, diseñado por la empresa Mapbox, bajo la licencia Creative Commons Attribution 3.0 US.
MVT contiene los elementos vectoriales modificados de su aspecto original, y preparados para representarse de manera más rápida.
Al igual que en el resto de formatos vectoriales, el estilo se renderiza directamente en el cliente, y su peso, al ser menos que en otros formatos raster o vectoriales no comprimidos, implica una transferencia de datos mucho más rápida.
En pruebas reales de clientes, con cartografía muy extensa, el peso de las teselas raster, frente a las vectoriales con formato MVT fué del orden de 8 Gb vs 750 Mb. Cuando hablamos de disponer cartografía en dispositivos móviles de manera offline, el peso es vital.
Al ser un formato vectorial, se pueden dibujar mapas con muy alta resolución.
A diferencia del resto de formatos, podemos publicar cartografía masiva basándonos en este formato. Intentar hacer publicaciones extensas con geometrías complejas con cualquier otro formato vectorial, sobrecargaría el navegador y sería imposible la navegación por el mapa.
En otros artículos hablaremos sobre como construir teselas vectoriales en formato mvt a partir de PostgreSQL, Geoserver o aplicaciones de línea de comandos, de manera muy eficiente, y cómo montar un servidor ligero.
Si queréis ver cómo se maneja un servidor GIS ligero publicando teselas vectoriales en formato MVT podéis hacer clic en la imagen inferior