Vector Tiles
See also Workshop Vector Tiles GEOSummit 2016, OpenMapTiles.
Vector tiles are roughly-square shaped "tiles" containing vector geometries and metadata – like road names, place names, house numbers – in a compact, structured format. Web Mercator (CRS EPSG:3857) is the projection of reference, and the Google tile scheme is the tile extent convention of reference. Together, they provide a 1-to-1 relationship between a specific geographical area, at a specific level of detail, and a path such as https://example.com/17/65535/43602.mvt
Vector tiles are typically preprocessed for a certain purpose and for several zoom levels (typically 1 to 14). Preprocessing means that expensive filtering (database queries), vector geometry clipping and cartographic generalization operations are performed in advance.
Vector tiles are rendered by either a client, like a web browser (Mapbox GL JS), a mobile app (Mapbox iOS SDK, Mapbox Android SDK), or a desktop GIS (Vector Tiles Reader QGIS Plugin). They can also be rendered on the fly on a server and delivered as common raster image tiles (WMTS).
Vector tiles have some advantages over fully rendered raster image tiles:
- Styling: As vectors, tiles can be styled when requested and on-the-fly, allowing for many map styles on global data
- Size: Vector tiles are small, enabling global high resolution maps, fast map loads
- Caching: As with raster tiles, the tiling allows efficient caching
- Decentralization: Rendering takes place in distributed (GPU) processors.
On the other hand, it's important to note that vector tiles are rather specific vector data targeted to visualization and thus not comparable to generic geospatial (vector) data formats.
Inhaltsverzeichnis
More info
- Vector tiles specification: See https://www.mapbox.com/vector-tiles/specification/ and https://github.com/mapbox/vector-tile-spec
- Vector tiles on Wikipedia: https://en.wikipedia.org/wiki/Vector_tiles Wikipedia
- The MBTiles is an efficient format for storing millions of vector tiles in a single SQLite database file.
- Understanding Esri Vector Basemap File Structure: https://blogs.esri.com/esri/arcgis/2015/12/02/understanding-esri-vector-basemap-file-structure/
- Mapbox Vector Tiles: https://www.mapbox.com/developers/vector-tiles/
Vector Tiles Providers
- MapBox Map Styles
- MapZen Vector Tiles
- OpenMapTiles.org (formerly OSM2VectorTiles) by Klokan Technologies and Geometa Lab
Tools
Vector Tiles Readers/Clients we know:
- Leaflet with MapBox GL extension
- OpenLayers 3: https://github.com/openlayers/ol3
- Vector Tiles Reader QGIS Plugin
- Plugin for Mapbox GL JS to view the view ans inspect VT features: https://github.com/lukasmartinelli/mapbox-gl-inspect
- MapTiler
Vector Tiles Generators/Servers:
- Mapnik
- TileMaker
- GeoServer for creating Vector Tiles in GeoJSON, TopoJSON, and MapBox Vector Tiles format for all the vector data formats it supports. https://github.com/geoserver/geoserver/tree/master/src/community/vectortiles
- t-rex - Vector Tiles Generator from Sourcepole - generates MVT from PostGIS.
For software around vector tiles see https://github.com/mapbox/awesome-vector-tiles
Discussion
Advantages:
- Vector tiles gives performance gain for production (without database) but makes it harder to get "right" structure for specific use case on client side
- Vector tiles allows 3D view / tilt map view on client
- Vector tiles allow labels that may be moved into bbox and oriented
Potentially controversial points:
- Vector tiles implies high coupling of server and client (vs. low coupling of raster tiles/WMS/WMTS)
- Vector tiles implies a complex and resource demanding infrastructure.
- Vector tiles rendered in browser (using Mapbox GL or others) means yet another new styling language (different and diverting from CartoCSS, Mapnik, SLD/SE, GIS), initially more limited - unless reconstructed (like with Vector Tiles Reader QGIS Plugin)