Vector Tiles Reader QGIS Plugin
QGIS-Plugin Vector Tiles Reader - This Python plugin reads Mapbox Vector Tiles (MVT) from a local MBTiles file and loads them into a vector layer that is rendered by QGIS.
- A project by Geometa Lab HSR
- Project Lead: Stefan Keller
- Developed by: Martin Boos
- Github: https://github.com/geometalab/Vector-Tiles-Reader-QGIS-Plugin
>> This is experimental work in progress! Expected an early release as QGIS plugin around 2nd quarter of 2017 <<
Important websites:
- Source Code on Github: https://github.com/geometalab/Vector-Tiles-Reader-QGIS-Plugin
- QGIS plugin directory: http://plugins.qgis.org/plugins/vector_tiles_reader/
Inhaltsverzeichnis
About
About Vector Tiles: Though this is a vector representation, Vector Tiles are rather specific data targeted to visualization and thus not fully comparable to generic geospatial vector data formats. Because of many optimization issues Vector Tiles are lossy in many respect: Coordinates are converted to integers and thus loose precision, features are filtered at certain zoom levels and geometries like roads are simplified. Moreover they are "overzoomed" which means that they often borrow data from upper zoom levels.
Available data sources (MBTiles):
- Download MBTiles (compatible to "Mapbox Streets v7") from OpenMapTiles project (see also city extracts).
- There's a possibility to download single tiles from online resources, like "Mapbox Streets v7" (tbd.)
Data model documentation:
- Data model of OpenMapTiles.
- Data model of "Mapbox Streets v7".
Available styles:
- Some default styles are delivered with the plugin. However, some may be missing.
How to Add a Vector Tile Layer
Adding a local mbtiles file ("Add Vector Tile Layer..."):
- Go to menu item "Add Vector Tile Layer..."
- In modal dialog click on "Source Browse"
- Change to directory or paste "%userprofile%/.qgis2/python/plugins/Vector-Tiles-Reader-QGIS-Plugin\sample data\" to load a sample mbtile.
- ...
Adding a server connection ("Add Tile Server Layer"):
- Go to menu "Add Tile Server Layer..."
- Get API key from https://openmaptiles.com/hosting/
- Clikc on "New" button in dialog
- Enter a name e.g. "OpenMapTiles (tilehosting.com)"
- Enter a vector tile server, e.g. http://free.tilehosting.com/data/v3.json?key=<<you API key here>>
- ...
Known Limitations
Limitations in general:
- This plugin is only tested on reading MBTiles containing Vector Tiles according to Mapbox Vector Tile Specification 2.1.
- CRS is always EPSG:3857 Web-Mercator. Though Vector Tiles are in principle not bound to a coordinate reference system (CRS), currently it's only possible to handle Vector Tiles in Web-Mercator EPSG:3857.
- There's no styling attached to MBTiles nor to Vector Tiles.
Limitations of current plugin:
- Server connections work only with services implementing the TileJSON specification
Enhancements and Ideas
The plugin could read Vector Tiles directly from the web. But then - to behave similar to raster tiles - the problem of missing corresponding styling becomes even more prominent.
Installation and Source Code
Intall as local plugin (not yet in QGIS plugin repo -[Install from inside QGIS as Python plugin (Note: For plugin versions up to 0.9 you have to enable "experimental plugins")]-).
FAQ
How can I use the server connection feature?
Any vector tile service, implementing the TileJSON specification should work. For the feature to work, you have to create a connection using a URL pointing to the TileJSON of the tile service.
For example you can use http://free.tilehosting.com/data/v3.json?key={API-KEY} and get your own API-Key from OpenMapTiles.com
Ressources
See Categories below.