Vector Tiles: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K (Tools)
K (Tools)
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
  >> Aktuell: [[Workshop Vektor Tiles GEOSummit 2016]] <<
+
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 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 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 typically preprocessed for a certain purpose and for several [[Zoom Levels|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 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]]).  
Zeile 16: Zeile 16:
  
 
== More info ==
 
== More info ==
* Vector tiles specification: https://github.com/mapbox/vector-tile-spec
+
* Great video explaining vector tiles by Sam Mathews, Mapbox: https://www.youtube.com/watch?v=wN2-ms2PwBs
 
* Vector tiles on Wikipedia: https://en.wikipedia.org/wiki/Vector_tiles Wikipedia
 
* Vector tiles on Wikipedia: https://en.wikipedia.org/wiki/Vector_tiles Wikipedia
 +
* Mapbox Vector Tiles: https://www.mapbox.com/developers/vector-tiles/
 +
* Vector tiles specification: See https://www.mapbox.com/vector-tiles/specification/ and https://github.com/mapbox/vector-tile-spec
 +
 +
Miscellaneous:
 
* The [[MBTiles]] is an efficient format for storing millions of vector tiles in a single [[SQLite]] database file.
 
* 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/
 
* 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 ==
 
== Vector Tiles Providers ==
 
* [https://www.mapbox.com/developers/api/maps/ MapBox Map Styles]
 
* [https://www.mapbox.com/developers/api/maps/ MapBox Map Styles]
 
* [https://mapzen.com/projects/vector-tiles/ MapZen Vector Tiles]
 
* [https://mapzen.com/projects/vector-tiles/ MapZen Vector Tiles]
* [http://osm2vectortiles.org/ osm2vectortiles.org] by Geometa Lab & Klokan Technologies
+
* [http://openmaptiles.org/ OpenMapTiles.org (formerly OSM2VectorTiles)] by Klokan Technologies and Geometa Lab
  
 
== Tools ==
 
== Tools ==
 
For software around vector tiles see https://github.com/mapbox/awesome-vector-tiles
 
  
 
Vector Tiles Readers/Clients we know:
 
Vector Tiles Readers/Clients we know:
 
* Leaflet with MapBox GL extension
 
* Leaflet with MapBox GL extension
* OpenLayers 3: https://github.com/openlayers/ol3
+
* [https://github.com/openlayers/ol3 OpenLayers 3]
 +
* Syling editor and inspector: http://maputnik.com/editor/#14.99/47.2253/8.8160
 +
* Plugin for Mapbox GL JS to view the view ans inspect VT features: https://github.com/lukasmartinelli/mapbox-gl-inspect
 +
* [http://www.maptiler.com/ MapTiler]
 
* [[Vector Tiles Reader QGIS Plugin]]
 
* [[Vector Tiles Reader QGIS Plugin]]
  
 
Vector Tiles Generators/Servers:
 
Vector Tiles Generators/Servers:
* Mapnik
+
* t-rex - MVT server. Serves tiles from PostGIS supporting custom tile grids. single executable written in Rust by Pirmin Kalberer, Sourcepole. https://github.com/pka/t-rex/
* TileMaker
+
* Tileserver - A lightweight tileserver to share code paths with tilequeue for tile generation. Written in a single Python file by Ian Dees. https://github.com/tilezen/tileserver
 +
* Tiler - Command line tool for converting GeoJSON, Shapefiles or PostGIS layer to raw Vector Tiles (or MBTiles). Written in Python (avail. as Docker container) by Geovation. https://github.com/Geovation/tiler
 +
* tippecanoe - Build vector tilesets from large collections of GeoJSON features. Written in CPP (OSX only?) by Mapbox. https://github.com/mapbox/tippecanoe
 
* 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  
 
* 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  
* (Tba. around mid 2016: Vector Tiles Generator from Sourcepole - generates MVT from PostGIS.)
+
* ArcGIS Pro
 +
 
 +
For software around vector tiles see '''https://github.com/mapbox/awesome-vector-tiles '''
 +
 
 +
Miscellaneous:
 +
* Raw vector tiles (MVT) to download as MBTiles with daily update: https://osmlab.github.io/osm-qa-tiles/
 +
* Inspect MVTs directly: https://github.com/lukasmartinelli/mapbox-gl-inspect
 +
* Mapbox GeoJSON/TopoJSON Viewer: http://mapbox.github.io/geojson-vt/debug/
  
 
== Discussion ==
 
== Discussion ==

Aktuelle Version vom 15. April 2020, 15:56 Uhr

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.

More info

Miscellaneous:

Vector Tiles Providers

Tools

Vector Tiles Readers/Clients we know:

Vector Tiles Generators/Servers:

For software around vector tiles see https://github.com/mapbox/awesome-vector-tiles

Miscellaneous:

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)