|
||
---|---|---|
protobuf | ||
src | ||
style | ||
LICENSE | ||
pbfplugin.json | ||
pbfplugin.pro | ||
pbfplugin.qrc | ||
README.md |
QtPBFImagePlugin
Qt image plugin for displaying Mapbox vector tiles
Description
QtPBFImagePlugin is a Qt image plugin that enables applications capable of displaying raster MBTiles maps to also display PBF vector tiles without (almost, see usage) any application modifications.
Standard Mapbox GL Styles are used for styling the maps. Most style features used by Maputnik are supported. The style is loaded from the $AppDataLocation/style/style.json file on plugin load. A default fallback style (OSM-Liberty) for OpenMapTiles is part of the plugin.
Usage
Due to a major design flaw in the Mapbox vector tiles specification - the zoom is not part of the PBF data - the plugin can not be used "as is", but passing the zoom level is necessary. This is done by exploiting the optional format parameter of the QImage constructor or the QImage::fromData() or QPixmap::loadFromData() functions. The zoom number is passed as ASCII string to the functions:
QPixmap pm;
pm.loadFromData(tileData, QString::number(zoom).toLatin1());
Build
Requirements
- Qt 5
- Google Protocol Buffers (protobuf-lite)
- Zlib
Build steps
Linux
qmake pbfplugin.pro
make
Windows
qmake PROTOBUF=path/to/protobuf ZLIB=path/to/zlib pbfplugin.pro
nmake
Install
Copy the plugin to the system Qt image plugins path to make it work. You may also set the QT_PLUGIN_PATH system variable before starting the application.
Limitations
Text PBF features must have a unique id (OpenMapTiles >= v3.7) for the text layout algorithm to work properly.
Status
A picture is worth a thousand words. Data and styles from https://openmaptiles.org.