Vector tiles

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.

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]

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 have defined an open standard for vector map tiles called "vector-tile-spec" which uses Google protocol buffers for space-efficient data serialisation. It is restricted to the Web Mercator projection.[4] It is also tied to the Mapnik rendering engine, using a "serialized version of the internal data that Mapnik uses".[5]

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.[6]

Mapnik Vector Tile

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

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[8] and on the desktop client since 2013.[9] Vector tiles for rendering OpenStreetMap data were first proposed in March 2013[1] and are supported by Mapnik,[10] 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.[11]

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

Servers

The tile server pipeline TileStache supports several flavours of JSON natively.[13] There is also a plugin vector tile provider called VecTiles[14] which converts PostGIS data into vector tiles in Mapnik Vector Tile format (incompatible with the Mapbox specification[15]) 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.[16]

As of March 2015, ESRI ArcGis Server does not support vector tiles, but they "will be supported in upcoming versions of ArcGIS Pro and Server".[17]

Client libraries

The Leaflet Javascript library does not directly support vector tiles, but there is a third-party plugin for Mapbox vector tiles, called Leaflet.MapboxVectorTile.[18] Alternatively, Mapbox's own JavasScript library, Mapbox.js, can be used.[19]

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

External links

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. "vector-tile-spec/1.0.1 at master · mapbox/vector-tile-spec · GitHub". github.com. Retrieved 2014-08-24.
  5. "Vector Tiles Overview". Mapbox.
  6. "Mapbox Vector Tile Specification adopted by Esri". Mapbox blog. 2015-03-17.
  7. "Python: module TileStache.Goodies.VecTiles.mvt". tilestache.org. Retrieved 2015-11-20.
  8. "Under the hood of Google Maps 5.0 for Android - Official Google Mobile Blog". googlemobile.blogspot.com.au. Retrieved 2014-08-24.
  9. "Redesigned Google Maps hands-on: vector-based, more personal and coming soon to mobile". engadget.com. Retrieved 2014-08-24.
  10. "mapbox/mapnik-vector-tile · GitHub". github.com. Retrieved 2014-08-24.
  11. "Vector Tiles for MapBox Streets | Mapbox". mapbox.com. Retrieved 2014-08-24.
  12. "HowToVectorTileData - osmand - This article describes how to use key features - Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps - Google Project Hosting". code.google.com. Retrieved 2014-08-24.
  13. "TileStache.Vector".
  14. "TileStache.Goodies.VecTiles.server".
  15. "Protobuf.skip unimplemented types · Issue #15 · SpatialServer/Leaflet.MapboxVectorTile". GitHub. Retrieved 2015-11-20.
  16. "PGRestAPI (aka Chubbs Spatial Server)". 2015-02-25.
  17. "The lowdown from the 2015 Esri Partner Conference". Retrieved 2015-03-13.
  18. "Leaflet.MapboxVectorTile". GitHub. 2015-02-12.
  19. "API Documentation". Mapbox.
  20. "Open Layers 3 documentation".
This article is issued from Wikipedia - version of the Wednesday, February 10, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.