Vector tiles

Last updated

Vector tiles, tiled vectors or vectiles [1] are packets of geographic data, packaged into pre-defined roughly-square shaped "tiles" for transfer over the web. This is an emerging method for delivering styled web maps, combining certain benefits of pre-rendered raster map tiles with vector map data. As with the widely used raster tiled web maps, map data is requested by a client as a set of "tiles" corresponding to square areas of land of a pre-defined size and location. Unlike raster tiled web maps, however, the server returns vector map data, which has been clipped to the boundaries of each tile, instead of a pre-rendered map image.

Contents

There are several major advantages of this hybrid approach. Compared to an un-tiled vector map, the data transfer is reduced, [2] because only data within the current viewport, and at the current zoom level needs to be transferred. The GIS clipping operations can all be performed in advance, as the tile boundaries are pre-defined. This in turn means that tiled vector data can be packaged up and distributed, without needing any kind of GIS system available to serve data.

Compared to a tiled raster map, data transfer is also greatly reduced, as vector data is typically much smaller than a rendered bitmap. Also, styling can be applied later in the process, or even in the browser itself, allowing much greater flexibility in how data is presented. It is also easy to provide interactivity with map features, as their vector representation already exists within the client. [2] Yet another benefit is that less centralised server processing power is required, since rasterisation can be performed directly in the client. This has been described as making "rendering ... a last-mile problem, with fast, high-quality GPU[s] in everyone’s pocket". [3]

History

There is a long history of the use of vector tile schemes in GIS. A very early GIS (circa 1966), the Canada Geographic Information System (CGIS), used a vector tile storage scheme that allowed limited resource computers to efficiently access and process vector map data. [4] CGIS used the term "frame" instead of vector tiles.

In 1975, the US Wildlife Service initiated a national program to map and digitize all the wetlands in the US. In 1976 they awarded a contract to Autometric to develop a software application that allowed stereo imagery to be digitized using an analytical stereo plotter. Later support for 2d digitization from single photos (aka single photo resection) on a digitizing table was added. The software was called WAMS (Wetlands Analytical Mapping System). The WAMS data store used a tiled vector structure. Each tile was called a “geounit”. A geounit corresponded to one of the USGS quadrangle scales, typically 1:24000. As the data were digitized, they were immediately stored in the tiled data store and topologically structured. Lines crossing geounit boundaries were automatically split. The storage Coordinate Reference System (CRS) was WGS 72 lat/long. WAMS is described in detail in “The wetlands analytical mapping system: WAMS" [Pywell and Niedzwiadek, 1980]

Building on the operational experience gained in implementing and using WAMS as well as from the Map Overlay and Statistical System (MOSS), [5] in 1986 Autometric released a UNIX based commercial GIS that implemented an enhanced tiled and indexed storage and access structure: DeltaMap (later GenaMap). The tiled structure capabilities and indexing scheme is described in "DeltaMap: Not just another GIS". [6] Where WAMS implemented a fixed tile system based on latitude/longitude 1:24000 quadrangles, DeltaMap allowed the user to define any size tile in any coordinate reference system (CRS). In this way, sparse data required only a few tiles whereas dense data could use much smaller tiles. R-trees were used as the indexing scheme for the vector tiles. Further, unlike earlier tiling implementations, DeltaMap/GenaMap used the same tiling and indexing scheme for any geospatial data type including 2d and 2.5d vector and feature data, satellite imagery, 3D grids such as DEMs, and annotation. In the late 1980s, Genasys further enhanced GenaMap to allow "Continuous, seamless" processing of the tiled layers. Basically, from the end user perspective, the tiles became invisible. This capability was true regardless of whether the user were editing, visualizing, querying, or analyzing the data.

Standards and approaches

As of early 2015, there is no dominant standard for vector tiles. Approaches can differ in their URL format, data serialisation format, packaging of styling information, and support for projections other than Web Mercator.

Protocol buffers (Mapbox)

Mapbox has defined an open standard for vector map tiles called "vector-tile-spec" which uses Google protocol buffers for space-efficient data serialisation. Web Mercator is the projection of reference, but vector tiles may be used to represent data with any projection and tile extent scheme. [7] It is also tied to the Mapnik rendering engine, using a "serialized version of the internal data that Mapnik uses". [8]

In March 2015, Esri, the dominant geospatial software maker, announced that they would be supporting Mapbox's vector tiles standard in both server and client platforms. [9]

Mapnik Vector Tile

This was an early format developed for the Mapnik renderer. [10]

Other formats

The approach followed by TileStache is to allow multiple data serialisation formats; as of early 2015, it supports GeoJSON, ArcJSON, GeoBSON, Arc GeoServices BSON, GeoAMF and Arc GeoServices BSON. The requested format is given in the URL (e.g., http://example.com/tiles/mylayer/2/1/3.json )

Support

Services and applications

Vector tiles have been used by the Google Maps Android client since December 2010 [11] and on the desktop client since 2013. [12] Vector tiles for rendering OpenStreetMap data were first proposed in March 2013 [1] and are supported by Mapnik, [13] the most widely used renderer of OpenStreetMap data. Mapbox, a commercial provider of custom cartography tools and hosting, has focused its cartography tool, Mapbox Studio, around vector tiles. [14]

The popular, and very powerful, Android client for OpenStreetMap data, osmAnd supports vector tiles, which it calls "vector maps". [15]

Servers

The tile server pipeline TileStache supports several flavours of JSON natively. [16] There is also a plugin vector tile provider called VecTiles [17] which converts PostGIS data into vector tiles in Mapnik Vector Tile format (incompatible with the Mapbox specification [18] ) or TopoJSON.

PGRestAPI (also known as Chubbs Spatial Server) is a standalone NodeJS server which can also generate vector tiles on the fly from a PostGIS data source, as well as serving pre-generated vector tiles from sources such as Mapbox Studio. [19]

pg_tileserv is an open source PostGIS-only tile server written in Golang that takes in HTTP tile requests and form and executes SQL. [20]

ESRI ArcGIS Server 10.4 [21] and ArcGIS Pro 1.2 [22] released in February 2016 added support for vector tiles.

Client libraries

The Leaflet JavaScript library does not directly support vector tiles, but there are third-party plugin for vector tiles, Leaflet.MapboxVectorTile for Leaflet 0.7.x [23] and Leaflet.VectorGrid for Leaflet 1.0.x. [24]

Mapbox's own JavaScript library, Mapbox GL JS, can be used. [25]

OpenLayers supports vector tiles through the ol.source.VectorTile object, [26] as of version 3.

Related Research Articles

<span class="mw-page-title-main">Esri</span> Geospatial software & SaaS company

Environmental Systems Research Institute, Inc., doing business as Esri, is an American multinational geographic information system (GIS) software company headquartered in Redlands, California. It is best known for its ArcGIS products. With a 40% market share, Esri is the world's leading supplier of GIS software, web GIS and geodatabase management applications.

A GIS file format is a standard for encoding geographical information into a computer file, as a specialized type of file format for use in geographic information systems (GIS) and other geospatial applications. Since the 1970s, dozens of formats have been created based on various data models for various purposes. They have been created by government mapping agencies, GIS software vendors, standards bodies such as the Open Geospatial Consortium, informal user communities, and even individual developers.

In computing, GeoServer is an open-source server written in Java that allows users to share, process and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards. GeoServer has evolved to become an easy method of connecting existing information to virtual globes such as Google Earth and NASA World Wind as well as to web-based maps such as OpenLayers, Leaflet, Google Maps and Bing Maps. GeoServer functions as the reference implementation of the Open Geospatial Consortium Web Feature Service standard, and also implements the Web Map Service, Web Coverage Service and Web Processing Service specifications.

A GIS software program is a computer program to support the use of a geographic information system, providing the ability to create, store, manage, query, analyze, and visualize geographic data, that is, data representing phenomena for which location is important. The GIS software industry encompasses a broad range of commercial and open-source products that provide some or all of these capabilities within various information technology architectures.

<span class="mw-page-title-main">Manifold System</span>

Manifold System is a geographic information system (GIS) software package developed by Manifold Software Limited that runs on Microsoft Windows. Manifold System handles both vector and raster data, includes spatial SQL, a built-in Internet Map Server (IMS), and other general GIS features.

A Web Map Service (WMS) is a standard protocol developed by the Open Geospatial Consortium in 1999 for serving georeferenced map images over the Internet. These images are typically produced by a map server from data provided by a GIS database.

<span class="mw-page-title-main">ArcGIS</span> Geographic information system maintained by Esri

ArcGIS is a family of client, server and online geographic information system (GIS) software developed and maintained by Esri.

<span class="mw-page-title-main">QGIS</span> Open-source desktop GIS software

QGIS is a geographic information system (GIS) software that is free and open-source. QGIS supports Windows, macOS, and Linux. It supports viewing, editing, printing, and analysis of geospatial data in a range of data formats. QGIS was previously also known as Quantum GIS.

<span class="mw-page-title-main">GDAL</span> Translator library for raster and vector geospatial data formats

The Geospatial Data Abstraction Library (GDAL) is a computer software library for reading and writing raster and vector geospatial data formats, and is released under the permissive X/MIT style free software license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model to the calling application for all supported formats. It may also be built with a variety of useful command line interface utilities for data translation and processing. Projections and transformations are supported by the PROJ library.

In cartography and geographic information systems, rubbersheeting is a form of coordinate transformation that warps a vector dataset to match a known geographic space. This is most commonly needed when a dataset has systematic positional error, such as one digitized from a historical map of low accuracy. The mathematics and procedure are very similar to the georeferencing of raster images, and this term is occasionally used for that process as well, but image georegistration is an unambiguous term for the raster process.

In cartography, a Styled Layer Descriptor (SLD) is an XML schema specified by the Open Geospatial Consortium (OGC) for describing the appearance of map layers. It is capable of describing the rendering of vector and raster data. A typical use of SLDs is to instruct a Web Map Service (WMS) how to render a specific layer.

<span class="mw-page-title-main">Web mapping</span> Process of using the maps delivered by geographic information systems (GIS) in World Wide Web

Web mapping or an online mapping is the process of using, creating, and distributing maps on the World Wide Web, usually through the use of Web geographic information systems. A web map or an online map is both served and consumed, thus, web mapping is more than just web cartography, it is a service where consumers may choose what the map will show.

A geographic data model, geospatial data model, or simply data model in the context of geographic information systems, is a mathematical and digital structure for representing phenomena over the Earth. Generally, such data models represent various aspects of these phenomena by means of geographic data, including spatial locations, attributes, change over time, and identity. For example, the vector data model represents geography as collections of points, lines, and polygons, and the raster data model represent geography as cell matrices that store numeric values. Data models are implemented throughout the GIS ecosystem, including the software tools for data management and spatial analysis, data stored in a variety of GIS file formats, specifications and standards, and specific designs for GIS installations.

Mapnik is an open-source mapping toolkit for desktop and server based map rendering, written in C++. Artem Pavlenko, the original developer of Mapnik, set out with the explicit goal of creating beautiful maps by employing the sub-pixel anti-aliasing of the Anti-Grain Geometry (AGG) library. Mapnik now also has a Cairo rendering backend. For handling common software tasks such as memory management, file system access, regular expressions, and XML parsing, Mapnik utilizes the Boost C++ libraries. An XML file can be used to define a collection of mapping objects that determine the appearance of a map, or objects can be constructed programmatically in C++, Python, and Node.js.

GeoJSON is an open standard format designed for representing simple geographical features, along with their non-spatial attributes. It is based on the JSON format.

The following tables compare general and technical information for a number of GIS vector file format. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

<span class="mw-page-title-main">SpatiaLite</span> Spatial extension to SQLite

SpatiaLite is a spatial extension to SQLite, providing vector geodatabase functionality. It is similar to PostGIS, Oracle Spatial, and SQL Server with spatial extensions, although SQLite/SpatiaLite aren't based on client-server architecture: they adopt a simpler personal architecture. i.e. the whole SQL engine is directly embedded within the application itself: a complete database simply is an ordinary file which can be freely copied and transferred from one computer/OS to a different one without any special precaution.

Geographic information systems (GIS) play a constantly evolving role in geospatial intelligence (GEOINT) and United States national security. These technologies allow a user to efficiently manage, analyze, and produce geospatial data, to combine GEOINT with other forms of intelligence collection, and to perform highly developed analysis and visual production of geospatial data. Therefore, GIS produces up-to-date and more reliable GEOINT to reduce uncertainty for a decisionmaker. Since GIS programs are Web-enabled, a user can constantly work with a decision maker to solve their GEOINT and national security related problems from anywhere in the world. There are many types of GIS software used in GEOINT and national security, such as Google Earth, ERDAS IMAGINE, GeoNetwork opensource, and Esri ArcGIS.

Leaflet is an open source JavaScript library used to build web mapping applications. First released in 2011, it supports most mobile and desktop platforms, supporting HTML5 and CSS3. Among its users are FourSquare, Pinterest and Flickr.

<span class="mw-page-title-main">Tiled web map</span> Map displayed with adjoining small images

A tiled web map,slippy map or tile map is a map displayed in a web browser by seamlessly joining dozens of individually requested image or vector data files. It is the most popular way to display and navigate maps, replacing other methods such as Web Map Service (WMS) which typically display a single large image, with arrow buttons to navigate to nearby areas. Google Maps was one of the first major mapping sites to use this technique. The first tiled web maps used raster tiles, before the emergence of vector tiles.

References

  1. 1 2 "the liberty of postgreslessness: tiled vectors in mapnik (tecznotes)". mike.teczno.com. Retrieved 2014-08-24.
  2. 1 2 "About Tiled Vectors". research.microsoft.com. Retrieved 2014-08-24.
  3. Migurski, Michal (2013-04-01). "Geomeetup Slides 2013-04" (PDF).
  4. "Introductory Readings In Geographic Information Systems". CRC Press. Retrieved 2016-04-26.
  5. Moss: A Historical Perspective https://www.scribd.com/document/4606038/2004-Article-by-Carl-Reed-MOSS-A-Historical-perspective
  6. Reed C N (1986) DELTAMAP: Not just another new GIS- Proceedings of the 3rd International Symposium on Spatial Data Handling. IGU Commission on Geographical Data Sensing and Processing, Williamsville NY, pp. 375-83
  7. "vector-tile-spec/2.1 at master · mapbox/vector-tile-spec · GitHub". github.com. Retrieved 2016-05-24.
  8. "Vector Tiles Overview". Mapbox. Archived from the original on 2015-03-18. Retrieved 2015-03-12.
  9. "Mapbox Vector Tile Specification adopted by Esri". Mapbox blog. 2015-03-17.
  10. "Python: module TileStache.Goodies.VecTiles.mvt". tilestache.org. Retrieved 2015-11-20.
  11. "Under the hood of Google Maps 5.0 for Android - Official Google Mobile Blog". googlemobile.blogspot.com.au. Retrieved 2014-08-24.
  12. "Redesigned Google Maps hands-on: vector-based, more personal and coming soon to mobile". engadget.com. 16 May 2013. Retrieved 2014-08-24.
  13. "mapbox/mapnik-vector-tile · GitHub". github.com. Retrieved 2014-08-24.
  14. "Vector Tiles for MapBox Streets | Mapbox". mapbox.com. Retrieved 2014-08-24.
  15. "HowToVectorTileData - osmand - This article describes how to use key features - Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps - Google Project Hosting" . Retrieved 2014-08-24.
  16. "TileStache.Vector".
  17. "TileStache.Goodies.VecTiles.server".
  18. "Protobuf.skip unimplemented types · Issue #15 · SpatialServer/Leaflet.MapboxVectorTile". GitHub. Retrieved 2015-11-20.
  19. "PGRestAPI (aka Chubbs Spatial Server)". GitHub . 2015-02-25.
  20. "pg_tileserv for PostGIS".
  21. "ArcGIS 10.4 is here!". 18 February 2016.
  22. "What's new in ArcGIS Pro 1.2—ArcGIS Pro | Documentation".
  23. "Leaflet.MapboxVectorTile". GitHub. 2015-02-12.
  24. "Leaflet.VectorGrid". GitHub. 2017-02-16.
  25. "API Documentation". Mapbox.
  26. "Open Layers VectorTile documentation".