Articulo de referencia

mosaicos vectoriales

Los mosaicos vectoriales , vectores en mosaico o vectiles [ 1 ] son ​​paquetes de datos geográficos, empaquetados en "mosaicos" predefinidos de forma aproximadamente cuadrada pa...

Los mosaicos vectoriales , vectores en mosaico o vectiles [ 1 ] son ​​paquetes de datos geográficos, empaquetados en "mosaicos" predefinidos de forma aproximadamente cuadrada para su transferencia a través de la web. Este es un método emergente para la entrega de mapas web con estilo , que combina ciertas ventajas de los mosaicos de mapas ráster prerrenderizados con datos de mapas vectoriales . Al igual que con los mapas web en mosaico ráster, ampliamente utilizados , un cliente solicita los datos del mapa como un conjunto de "mosaicos" que corresponden a áreas cuadradas de terreno de un tamaño y ubicación predefinidos. Sin embargo, a diferencia de los mapas web en mosaico ráster, el servidor devuelve datos de mapas vectoriales, que se han recortado a los límites de cada mosaico, en lugar de una imagen de mapa prerrenderizada.

Este enfoque híbrido presenta varias ventajas importantes. En comparación con un mapa vectorial sin teselado, la transferencia de datos se reduce [ 2 ], ya que solo es necesario transferir los datos dentro del área visible y con el nivel de zoom actual. Las operaciones de recorte del SIG se pueden realizar con antelación, dado que los límites de los mosaicos están predefinidos. Esto, a su vez, permite empaquetar y distribuir datos vectoriales teselados sin necesidad de contar con un sistema SIG para su procesamiento.

En comparación con un mapa ráster en mosaico, la transferencia de datos también se reduce considerablemente, ya que los datos vectoriales suelen ser mucho más pequeños que un mapa de bits renderizado. Además, el estilo se puede aplicar posteriormente en el proceso, o incluso en el propio navegador, lo que permite una mayor flexibilidad en la presentación de los datos. También es fácil proporcionar interactividad con las características del mapa, ya que su representación vectorial ya existe en el cliente. [ 2 ] Otra ventaja es que se requiere menos potencia de procesamiento centralizada del servidor, puesto que la rasterización se puede realizar directamente en el cliente. Esto se ha descrito como convertir la renderización en un problema de última milla, con GPU rápidas y de alta calidad al alcance de todos. [ 3 ]

Historia

Existe una larga historia del uso de esquemas de teselas vectoriales en los SIG. Un SIG muy antiguo (alrededor de 1966), el Sistema de Información Geográfica de Canadá (CGIS), utilizaba un esquema de almacenamiento de teselas vectoriales que permitía a las computadoras con recursos limitados acceder y procesar eficientemente los datos cartográficos vectoriales. [ 4 ] El CGIS utilizaba el término "marco" en lugar de teselas vectoriales.

En 1975, el Servicio de Vida Silvestre de los Estados Unidos inició un programa nacional para mapear y digitalizar todos los humedales del país. En 1976, adjudicó un contrato a Autometric para desarrollar una aplicación de software que permitiera digitalizar imágenes estereoscópicas mediante un trazador estereoscópico analítico. Posteriormente, se añadió la compatibilidad con la digitalización 2D a partir de fotografías individuales (también conocida como resección de una sola fotografía) en una mesa digitalizadora. El software se denominó WAMS (Sistema Analítico de Mapeo de Humedales). El sistema de almacenamiento de datos de WAMS utilizaba una estructura vectorial en mosaico. Cada mosaico se denominaba "geounidad". Una geounidad correspondía a una de las escalas de cuadrángulos del USGS, generalmente 1:24000. A medida que se digitalizaban los datos, se almacenaban inmediatamente en el sistema de almacenamiento de datos en mosaico y se estructuraban topológicamente. Las líneas que cruzaban los límites de las geounidades se dividían automáticamente. El Sistema de Referencia de Coordenadas (SRC) de almacenamiento era WGS 72 latitud/longitud. WAMS se describe en detalle en “El sistema de mapeo analítico de humedales: WAMS” [Pywell y Niedzwiadek, 1980].

Basándose en la experiencia operativa adquirida en la implementación y el uso de WAMS, así como del Sistema de Superposición de Mapas y Estadísticas (MOSS), [ 5 ] en 1986 Autometric lanzó un SIG comercial basado en UNIX que implementaba una estructura de almacenamiento y acceso mejorada, basada en teselas e indexada: DeltaMap (más tarde GenaMap). Las capacidades de la estructura de teselas y el esquema de indexación se describen en "DeltaMap: No es solo otro SIG". [ 6 ] Mientras que WAMS implementaba un sistema de teselas fijo basado en cuadrángulos de latitud/longitud 1:24000, DeltaMap permitía al usuario definir teselas de cualquier tamaño en cualquier sistema de referencia de coordenadas (CRS). De esta manera, los datos dispersos requerían solo unas pocas teselas, mientras que los datos densos podían usar teselas mucho más pequeñas. Se utilizaron árboles R como esquema de indexación para las teselas vectoriales. Además, a diferencia de las implementaciones de teselado anteriores, DeltaMap/GenaMap utilizaba el mismo esquema de teselado e indexación para cualquier tipo de dato geoespacial, incluyendo datos vectoriales y de entidades 2D y 2.5D, imágenes satelitales, cuadrículas 3D como los modelos digitales de elevación (MDE) y anotaciones. A finales de la década de 1980, Genasys mejoró aún más GenaMap para permitir el procesamiento continuo y sin interrupciones de las capas teseladas. Básicamente, desde la perspectiva del usuario final , los mosaicos se volvían invisibles. Esta capacidad se mantenía independientemente de si el usuario estaba editando, visualizando, consultando o analizando los datos.

Normas y enfoques

A principios de 2015, no existía un estándar dominante para los mosaicos vectoriales. Los enfoques podían diferir en su formato de URL, formato de serialización de datos, empaquetado de la información de estilo y compatibilidad con proyecciones distintas de Web Mercator.

Búferes de protocolo (Mapbox)

Mapbox ha definido un estándar abierto para teselas de mapas vectoriales llamado "vector-tile-spec", que utiliza búferes de protocolo de Google para la serialización de datos con eficiencia espacial. La proyección de referencia es Web Mercator , pero las teselas vectoriales pueden usarse para representar datos con cualquier proyección y esquema de extensión de teselas. [ 7 ] También está vinculado al motor de renderizado Mapnik , utilizando una "versión serializada de los datos internos que usa Mapnik". [ 8 ]

En marzo de 2015, Esri , el fabricante dominante de software geoespacial, anunció que daría soporte al estándar de teselas vectoriales de Mapbox tanto en plataformas de servidor como de cliente. [ 9 ]

Mosaico vectorial de Mapnik

Este fue un formato inicial desarrollado para el renderizador Mapnik. [ 10 ]

Otros formatos

El enfoque seguido por TileStache es permitir múltiples formatos de serialización de datos; desde principios de 2015, admite GeoJSON, ArcJSON, GeoBSON, Arc GeoServices BSON, GeoAMF y Arc GeoServices BSON. El formato solicitado se indica en la URL (por ejemplo, https://example.com/tiles/mylayer/2/1/3.json).

Apoyo

Servicios y aplicaciones

Los mosaicos vectoriales se han utilizado en el cliente de Google Maps para Android desde diciembre de 2010 [ 11 ] y en el cliente de escritorio desde 2013. [ 12 ] Los mosaicos vectoriales para la representación de datos de OpenStreetMap se propusieron por primera vez en marzo de 2013 [ 1 ] y son compatibles con Mapnik, [ 13 ] el renderizador de datos de OpenStreetMap más utilizado. Mapbox , un proveedor comercial de herramientas de cartografía personalizadas y alojamiento, ha centrado su herramienta de cartografía, Mapbox Studio, en los mosaicos vectoriales. [ 14 ]

El popular y muy potente cliente de Android para datos de OpenStreetMap, osmAnd, admite teselas vectoriales, a las que denomina "mapas vectoriales". [ 15 ]

Servidores

El pipeline del servidor de teselas TileStache admite de forma nativa varios tipos de JSON. [ 16 ] También hay un proveedor de teselas vectoriales de complemento llamado VecTiles [ 17 ] que convierte datos PostGIS en teselas vectoriales en formato Mapnik Vector Tile (incompatible con la especificación Mapbox [ 18 ] ) o TopoJSON .

PGRestAPI (también conocido como Chubbs Spatial Server) es un servidor NodeJS independiente que también puede generar teselas vectoriales sobre la marcha a partir de una fuente de datos PostGIS, así como servir teselas vectoriales pregeneradas de fuentes como Mapbox Studio. [ 19 ]

pg_tileserv es un servidor de teselas de código abierto solo para PostGIS escrito en Golang que toma solicitudes de teselas HTTP y forma y ejecuta SQL . [ 20 ]

ESRI ArcGIS Server 10.4 [ 21 ] y ArcGIS Pro 1.2 [ 22 ] lanzados en febrero de 2016 agregaron soporte para teselas vectoriales.

Bibliotecas de clientes

La biblioteca JavaScript de Leaflet no admite directamente teselas vectoriales, pero existen complementos de terceros para teselas vectoriales, Leaflet.MapboxVectorTile para Leaflet 0.7.x [ 23 ] y Leaflet.VectorGrid para Leaflet 1.0.x. [ 24 ]

Se puede utilizar la propia biblioteca JavaScript de Mapbox, Mapbox GL JS. [ 25 ]

OpenLayers admite teselas vectoriales a través del objeto ol.source.VectorTile , [ 26 ] a partir de la versión 3.

Referencias

  1. 1 2 "la libertad de la ausencia de postgres: vectores en mosaico en mapnik (tecznotes)" . mike.teczno.com . Consultado el 24 de agosto de 2014 .
  2. 1 2 "Acerca de los vectores en mosaico" . research.microsoft.com . Consultado el 24 de agosto de 2014 .
  3. ^ Migurski, Michal (1 de abril de 2013). "Diapositivas de Geomeetup 2013-04" (PDF) .
  4. "Lecturas introductorias en sistemas de información geográfica" . CRC Press . Consultado el 26 de abril de 2016 .
  5. Moss: Una perspectiva histórica https://www.scribd.com/document/4606038/2004-Article-by-Carl-Reed-MOSS-A-Historical-perspective
  6. Reed CN (1986) DELTAMAP: No es solo otro nuevo SIG - Actas del 3er Simposio Internacional sobre Manejo de Datos Espaciales. Comisión de la IGU sobre Detección y Procesamiento de Datos Geográficos, Williamsville, NY, págs. 375-83
  7. "vector-tile-spec/2.1 en master · mapbox/vector-tile-spec · GitHub" . github.com . Consultado el 24 de mayo de 2016 .
  8. "Descripción general de los mosaicos vectoriales" . Mapbox. Archivado del original el 18 de marzo de 2015. Consultado el 12 de marzo de 2015 .
  9. "Especificación de teselas vectoriales de Mapbox adoptada por Esri" . Blog de Mapbox . 17 de marzo de 2015.
  10. "Python: módulo TileStache.Goodies.VecTiles.mvt" . tilestache.org . Consultado el 20 de noviembre de 2015 .
  11. "Detrás del capó de Google Maps 5.0 para Android - Blog oficial de Google Mobile" . googlemobile.blogspot.com.au . Consultado el 24 de agosto de 2014 .
  12. "Primeras impresiones del rediseño de Google Maps: basado en vectores, más personal y próximamente disponible para móviles" . engadget.com. 16 de mayo de 2013. Consultado el 24 de agosto de 2014 .
  13. "mapbox/mapnik-vector-tile · GitHub" . github.com . Consultado el 24-08-2014 .
  14. "Mosaicos vectoriales para calles de MapBox | Mapbox" . mapbox.com . Consultado el 24 de agosto de 2014 .
  15. "HowToVectorTileData - osmand - Este artículo describe cómo usar las funciones clave - Visualización y navegación de mapas móviles globales para mapas OSM sin conexión y en línea - Google Project Hosting" . Consultado el 24 de agosto de 2014 .
  16. "TileStache.Vector" .
  17. "TileStache.Goodies.VecTiles.server" .
  18. "Tipos no implementados de Protobuf.skip · Problema n.° 15 · SpatialServer/Leaflet.MapboxVectorTile" . GitHub . Consultado el 20 de noviembre de 2015 .
  19. "PGRestAPI (también conocido como Chubbs Spatial Server)" . GitHub . 25/02/2015.
  20. ^ "pg_tileserv para PostGIS" .
  21. "¡ArcGIS 10.4 ya está aquí!" 18 de febrero de 2016.
  22. "Novedades de ArcGIS Pro 1.2—ArcGIS Pro | Documentación" .
  23. "Leaflet.MapboxVectorTile" . GitHub . 12 de febrero de 2015.
  24. "Leaflet.VectorGrid" . GitHub . 16 de febrero de 2017.
  25. "Documentación de la API" . Mapbox.
  26. "Documentación de Open Layers VectorTile" .
  • Mosaicos vectoriales (wiki de OpenStreetMap)
  • Especificación de mosaicos vectoriales de Mapbox
  • Proyecto OpenMapTiles