Vector Tiles Reader QGIS Plugin: Unterschied zwischen den Versionen
Stefan (Diskussion | Beiträge) K |
Stefan (Diskussion | Beiträge) K (Added usage instructions) |
||
Zeile 1: | Zeile 1: | ||
QGIS-Plugin '''Vector Tiles Reader''' - This Python plugin reads Mapbox Vector Tiles (MVT) from a remote connection or a local MBTiles file and shows them in a vector layer that is rendered by [[QGIS]]. | QGIS-Plugin '''Vector Tiles Reader''' - This Python plugin reads Mapbox Vector Tiles (MVT) from a remote connection or a local MBTiles file and shows them in a vector layer that is rendered by [[QGIS]]. | ||
− | NOTE: Use this plugin responsibly (see | + | NOTE: Use this plugin responsibly (see Quick Start), it is a very powerful tool! The plugin accesses potentially almost 300 million tiles with a total size of over 40 Gigabytes - and we assume you don't have that memory available! So it's important to zoom in down to village or small town level before loading tiles with this plugin! |
* A project by [[Geometa Lab]] HSR | * A project by [[Geometa Lab]] HSR | ||
Zeile 7: | Zeile 7: | ||
* Developed by: Martin Boos HSR (semester thesis in spring semester 2017) | * Developed by: Martin Boos HSR (semester thesis in spring semester 2017) | ||
− | >> Whole world as spatial vector data on your desktop! Pls. test it as explained below! << | + | >> Whole world as spatial vector data on your desktop! Pls. test it as explained in Quick Start below! << |
Important websites: | Important websites: | ||
Zeile 14: | Zeile 14: | ||
− | == | + | == Quick Start == |
CAUTION: It's important to zoom in down to village or small town level BEFORE loading tiles with this plugin! | CAUTION: It's important to zoom in down to village or small town level BEFORE loading tiles with this plugin! | ||
− | + | The goal is to load a region of the world (e.g. Arosa) using this plugin. | |
Installation (once): | Installation (once): | ||
Zeile 32: | Zeile 32: | ||
Using Vector Tiles Reader QGIS plugin: | Using Vector Tiles Reader QGIS plugin: | ||
* Start QGIS (if not already startet) and zoom in e.g. as instructed above. | * Start QGIS (if not already startet) and zoom in e.g. as instructed above. | ||
− | * Click on "Vector Tiles Reader"-Icon, choose Connection "OpenMapTiles.com" > "Connect", | + | * Click on "Vector Tiles Reader"-Icon to load "Add Vector Tiles Reader" dialog, choose Connection "OpenMapTiles.com" (credity [https://openmaptiles.com/hosting/ Klokan Technologies]), |
− | * | + | * then click on > "Connect" in "Add Vector Tiles Reader" dialog, |
+ | * then click on "Add" button. | ||
* Wait until th tile processing completes - Done. | * Wait until th tile processing completes - Done. | ||
Zeile 42: | Zeile 43: | ||
One can reset to any mode by clicking on one of the three buttons at the end of the dialog called "Reset to ... Defaults". | One can reset to any mode by clicking on one of the three buttons at the end of the dialog called "Reset to ... Defaults". | ||
+ | |||
+ | |||
+ | == How to Add a new 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\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>> | ||
+ | * ... | ||
Zeile 58: | Zeile 76: | ||
Available styles: | Available styles: | ||
* Some default styles are delivered with the plugin. However, some may be missing. | * Some default styles are delivered with the plugin. However, some may be missing. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Known Limitations == | == Known Limitations == |
Version vom 7. Juli 2017, 11:56 Uhr
QGIS-Plugin Vector Tiles Reader - This Python plugin reads Mapbox Vector Tiles (MVT) from a remote connection or a local MBTiles file and shows them in a vector layer that is rendered by QGIS.
NOTE: Use this plugin responsibly (see Quick Start), it is a very powerful tool! The plugin accesses potentially almost 300 million tiles with a total size of over 40 Gigabytes - and we assume you don't have that memory available! So it's important to zoom in down to village or small town level before loading tiles with this plugin!
- A project by Geometa Lab HSR
- Project Lead: Stefan Keller, Geometa Lab HSR
- Developed by: Martin Boos HSR (semester thesis in spring semester 2017)
>> Whole world as spatial vector data on your desktop! Pls. test it as explained in Quick Start below! <<
Important websites:
- QGIS plugin directory: http://plugins.qgis.org/plugins/vector_tiles_reader/
- Source Code on Github: https://github.com/geometalab/Vector-Tiles-Reader-QGIS-Plugin
Inhaltsverzeichnis
Quick Start
CAUTION: It's important to zoom in down to village or small town level BEFORE loading tiles with this plugin!
The goal is to load a region of the world (e.g. Arosa) using this plugin.
Installation (once):
- Start QGIS.
- Open Menü "Plugin Manager"...
- ... and install following plugins (if not already done): "Vector Tiles Reader", "QuickMapServices" und "osmSearch".
Preparations (for every project):
- Start QGIS (if not already startet).
- Klick on "QuickMapServices"-Icon and load e.g. layer "OSM Standard". This background map gives an overview. This plugin/layer isn't strictly necessary and can be left out or deleted afterwards.
- Search in "osmSearch" dialog for any village or small town level of your choice (e.g. "Arosa"). This plugin/layer isn't strictly necessary but helps to zoom in.
Using Vector Tiles Reader QGIS plugin:
- Start QGIS (if not already startet) and zoom in e.g. as instructed above.
- Click on "Vector Tiles Reader"-Icon to load "Add Vector Tiles Reader" dialog, choose Connection "OpenMapTiles.com" (credity Klokan Technologies),
- then click on > "Connect" in "Add Vector Tiles Reader" dialog,
- then click on "Add" button.
- Wait until th tile processing completes - Done.
There are three "modes" which are simply defined by the chosen options:
- Base map (background map) - the default.
- Analysis (of vector data).
- Inspection (of tiles).
One can reset to any mode by clicking on one of the three buttons at the end of the dialog called "Reset to ... Defaults".
How to Add a new 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\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>>
- ...
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.
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.