Vector Tiles: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K (More info)
K (Tools)
 
(32 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Vector tiles are roughly-square shaped "tiles" containing vector geometries and metadata – like road names, place names, house numbers – in a compact, structured format. They are
+
See also [[Workshop Vector Tiles GEOSummit 2016]], [[OpenMapTiles]].
  
Vector tiles are rendered by 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 to usual raster tiles on the server and delivered as raster image tiles ([[WMTS]]). Thus, expensive clipping and geometry generalization operations are performed in advance.
+
'''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 have important advantages over fully rendered image tiles:
+
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.
* Styling: As vectors, tiles can be styled when requested, allowing for many map styles on global data
+
 
 +
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
 
* Size: Vector tiles are small, enabling global high resolution maps, fast map loads
* Caching: The tiling allows efficient caching
+
* Caching: As with raster tiles, the tiling allows efficient caching
 
* Decentralization: Rendering takes place in distributed (GPU) processors.
 
* Decentralization: Rendering takes place in distributed (GPU) processors.
  
But it's also important to note that vector tiles are really rather specific predefined vector data targeted to visualization and thus not comparable to generic geospatial (vector) data formats.
+
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 [[GIS-Datei-Format#Vektordatei-Formate|formats]].
  
 
== 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/
 +
 +
== Vector Tiles Providers ==
 +
* [https://www.mapbox.com/developers/api/maps/ MapBox Map Styles]
 +
* [https://mapzen.com/projects/vector-tiles/ MapZen Vector Tiles]
 +
* [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 .
 
  
See e.g. [[Vector Tiles Reader QGIS Plugin]].
+
Vector Tiles Readers/Clients we know:
 +
* Leaflet with MapBox GL extension
 +
* [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 Generators/Servers:
 +
* 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/
 +
* 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
 +
* 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 ==
 +
 
 +
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]])
 +
 
 +
[[Kategorie:Vector Tiles]]

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)