QGIS API Documentation 3.39.0-Master (d85f3c2a281)
Loading...
Searching...
No Matches
qgsmbtilesvectortiledataprovider.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmbtilesvectortiledataprovider.h
3 --------------------------------------
4 Date : March 2020
5 Copyright : (C) 2020 by Martin Dobias
6 Email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSMBTILESVECTORTILEDATAPROVIDER_H
17#define QGSMBTILESVECTORTILEDATAPROVIDER_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
22#include "qgsprovidermetadata.h"
24
25class QgsMbTiles;
26
27#define SIP_NO_FILE
28
30
31class CORE_EXPORT QgsMbTilesVectorTileDataProvider : public QgsVectorTileDataProvider
32{
33 Q_OBJECT
34
35 public:
36 QgsMbTilesVectorTileDataProvider( const QString &uri,
37 const QgsDataProvider::ProviderOptions &providerOptions,
39
40 QgsMbTilesVectorTileDataProvider( const QgsMbTilesVectorTileDataProvider &other );
41
42 QgsMbTilesVectorTileDataProvider &operator=( const QgsMbTilesVectorTileDataProvider &other ) = delete;
43
44 Qgis::DataProviderFlags flags() const override;
45 QString name() const override;
46 QString description() const override;
47 QgsVectorTileDataProvider *clone() const override;
48 QString sourcePath() const override;
49 bool isValid() const override;
50 QgsRectangle extent() const override;
51 QgsCoordinateReferenceSystem crs() const override;
52 const QgsVectorTileMatrixSet &tileMatrixSet() const override;
53 QgsVectorTileRawData readTile( const QgsTileMatrixSet &tileMatrixSet, const QgsTileXYZ &id, QgsFeedback *feedback = nullptr ) const override;
54 QList<QgsVectorTileRawData> readTiles( const QgsTileMatrixSet &, const QVector<QgsTileXYZ> &tiles, QgsFeedback *feedback = nullptr, Qgis::RendererUsage usage = Qgis::RendererUsage::Unknown ) const override;
55
56 static QString MB_TILES_VECTOR_TILE_DATA_PROVIDER_KEY;
57 static QString MB_TILES_VECTOR_TILE_DATA_PROVIDER_DESCRIPTION;
58
59 private:
60
62 static QByteArray loadFromMBTiles( QgsMbTiles &mbTileReader, const QgsTileXYZ &id, QgsFeedback *feedback = nullptr );
63 bool mIsValid = false;
64 QgsRectangle mExtent;
65 QgsVectorTileMatrixSet mMatrixSet;
66
67};
68
69class QgsMbTilesVectorTileDataProviderMetadata : public QgsProviderMetadata
70{
71 Q_OBJECT
72 public:
73 QgsMbTilesVectorTileDataProviderMetadata();
75 QgsMbTilesVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() ) override;
76 QIcon icon() const override;
77 ProviderCapabilities providerCapabilities() const override;
78 QString filters( Qgis::FileFilterType type ) override;
79 QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override;
80 int priorityForUri( const QString &uri ) const override;
81 QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override;
82
83 QVariantMap decodeUri( const QString &uri ) const override;
84 QString encodeUri( const QVariantMap &parts ) const override;
85 QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override;
86 QString relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const override;
87 QList< Qgis::LayerType > supportedLayerTypes() const override;
88};
89
90
92
93#endif // QGSMBTILESVECTORTILEDATAPROVIDER_H
QFlags< DataProviderFlag > DataProviderFlags
Data provider flags.
Definition qgis.h:2147
FileFilterType
Type of file filters.
Definition qgis.h:1285
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
Definition qgis.h:450
QFlags< SublayerQueryFlag > SublayerQueryFlags
Sublayer query flags.
Definition qgis.h:1309
RendererUsage
Usage of the renderer.
Definition qgis.h:3186
@ Unknown
Renderer used for unknown usage.
This class represents a coordinate reference system (CRS).
virtual QString name() const =0
Returns a provider name.
virtual Qgis::DataProviderFlags flags() const
Returns the generic data provider flags.
virtual QgsCoordinateReferenceSystem crs() const =0
Returns the coordinate system for the data source.
virtual bool isValid() const =0
Returns true if this is a valid layer.
virtual QString description() const =0
Returns description.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
Utility class for reading and writing MBTiles files (which are SQLite3 databases).
Definition qgsmbtiles.h:39
Holds data provider key, description, and associated shared library file or function pointer informat...
QFlags< ProviderMetadataCapability > ProviderMetadataCapabilities
virtual QgsProviderMetadata::ProviderCapabilities providerCapabilities() const
Returns the provider's capabilities.
virtual QgsDataProvider * createProvider(const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags=Qgis::DataProviderReadFlags())
Class factory to return a pointer to a newly created QgsDataProvider object.
virtual QIcon icon() const
Returns an icon representing the provider.
virtual int priorityForUri(const QString &uri) const
Returns an integer representing the priority which this provider should have when opening a dataset w...
virtual QString encodeUri(const QVariantMap &parts) const
Reassembles a provider data source URI from its component paths (e.g.
virtual QList< Qgis::LayerType > validLayerTypesForUri(const QString &uri) const
Returns a list of valid layer types which the provider can be used with when opening the specified ur...
virtual QString absoluteToRelativeUri(const QString &uri, const QgsReadWriteContext &context) const
Converts absolute path(s) to relative path(s) in the given provider-specific URI.
virtual QString filters(Qgis::FileFilterType type)
Builds the list of file filter strings (supported formats)
virtual QList< Qgis::LayerType > supportedLayerTypes() const
Returns a list of the map layer types supported by the provider.
virtual QList< QgsProviderSublayerDetails > querySublayers(const QString &uri, Qgis::SublayerQueryFlags flags=Qgis::SublayerQueryFlags(), QgsFeedback *feedback=nullptr) const
Queries the specified uri and returns a list of any valid sublayers found in the dataset which can be...
virtual QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const
Returns the provider metadata capabilities.
virtual QString relativeToAbsoluteUri(const QString &uri, const QgsReadWriteContext &context) const
Converts relative path(s) to absolute path(s) in the given provider-specific URI.
virtual QVariantMap decodeUri(const QString &uri) const
Breaks a provider data source URI into its component paths (e.g.
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
Defines a set of tile matrices for multiple zoom levels.
Definition qgstiles.h:252
Stores coordinates of a tile in a tile matrix set.
Definition qgstiles.h:40
Base class for vector tile layer data providers.
virtual QString sourcePath() const =0
Returns the source path for the data.
virtual QgsVectorTileDataProvider * clone() const =0
Returns a clone of the data provider.
virtual QList< QgsVectorTileRawData > readTiles(const QgsTileMatrixSet &tileMatrixSet, const QVector< QgsTileXYZ > &tiles, QgsFeedback *feedback=nullptr, Qgis::RendererUsage usage=Qgis::RendererUsage::Unknown) const =0
Returns raw tile data for a range of tiles.
QgsRectangle extent() const override
Returns the extent of the layer.
QgsVectorTileDataProvider & operator=(const QgsVectorTileDataProvider &other)=delete
virtual const QgsVectorTileMatrixSet & tileMatrixSet() const =0
Returns the tile matrix set associated with the provider.
virtual QgsVectorTileRawData readTile(const QgsTileMatrixSet &tileMatrixSet, const QgsTileXYZ &id, QgsFeedback *feedback=nullptr) const =0
Returns raw tile data for a single tile.
Encapsulates properties of a vector tile matrix set, including tile origins and scaling information.
Keeps track of raw tile data from one or more sources that need to be decoded.
Setting options for creating vector data providers.