QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsvtpkvectortiledataprovider.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsvtpkvectortiledataprovider.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 QGSVTPKVECTORTILEDATAPROVIDER_H
17#define QGSVTPKVECTORTILEDATAPROVIDER_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
22#include "qgsprovidermetadata.h"
24
25#include <QImage>
26
27#define SIP_NO_FILE
28
30
31class QgsVtpkTiles;
32
33class CORE_EXPORT QgsVtpkVectorTileDataProvider : public QgsVectorTileDataProvider
34{
35 Q_OBJECT
36
37 public:
38 QgsVtpkVectorTileDataProvider( const QString &uri,
39 const QgsDataProvider::ProviderOptions &providerOptions,
41 QgsVtpkVectorTileDataProvider( const QgsVtpkVectorTileDataProvider &other );
42
46 QgsVtpkVectorTileDataProvider &operator=( const QgsVtpkVectorTileDataProvider &other ) = delete;
47
48 Qgis::DataProviderFlags flags() const override;
51 QString name() const override;
52 QString description() const override;
53 QgsVectorTileDataProvider *clone() const override;
54 QString sourcePath() const override;
55 bool isValid() const override;
56 QgsCoordinateReferenceSystem crs() const override;
57 QgsRectangle extent() const override;
58 QgsLayerMetadata layerMetadata() const override;
59 const QgsVectorTileMatrixSet &tileMatrixSet() const override;
60 QVariantMap styleDefinition() const override;
61 QVariantMap spriteDefinition() const override;
62 QImage spriteImage() const override;
63 QgsVectorTileRawData readTile( const QgsTileMatrixSet &tileMatrix, const QgsTileXYZ &id, QgsFeedback *feedback = nullptr ) const override;
64 QList<QgsVectorTileRawData> readTiles( const QgsTileMatrixSet &, const QVector<QgsTileXYZ> &tiles, QgsFeedback *feedback = nullptr, Qgis::RendererUsage usage = Qgis::RendererUsage::Unknown ) const override;
65 QString htmlMetadata() const override;
66
67 static QString DATA_PROVIDER_KEY;
68 static QString DATA_PROVIDER_DESCRIPTION;
69
70 private:
71
73 static QgsVectorTileRawData loadFromVtpk( QgsVtpkTiles &vtpkTileReader, const QgsTileXYZ &id, QgsFeedback *feedback = nullptr );
74 bool mIsValid = false;
76 QgsRectangle mExtent;
77 QgsVectorTileMatrixSet mMatrixSet;
78 QgsLayerMetadata mLayerMetadata;
79 QVariantMap mStyleDefinition;
80 QVariantMap mSpriteDefinition;
81 QImage mSpriteImage;
82
83};
84
85
86class QgsVtpkVectorTileDataProviderMetadata : public QgsProviderMetadata
87{
88 Q_OBJECT
89 public:
90 QgsVtpkVectorTileDataProviderMetadata();
92 QgsVtpkVectorTileDataProvider *createProvider( const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() ) override;
93 QIcon icon() const override;
94 ProviderCapabilities providerCapabilities() const override;
95 QString filters( Qgis::FileFilterType type ) override;
96 QList< QgsProviderSublayerDetails > querySublayers( const QString &uri, Qgis::SublayerQueryFlags flags = Qgis::SublayerQueryFlags(), QgsFeedback *feedback = nullptr ) const override;
97 int priorityForUri( const QString &uri ) const override;
98 QList< Qgis::LayerType > validLayerTypesForUri( const QString &uri ) const override;
99 QVariantMap decodeUri( const QString &uri ) const override;
100 QString encodeUri( const QVariantMap &parts ) const override;
101 QString absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const override;
102 QString relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const override;
103 QList< Qgis::LayerType > supportedLayerTypes() const override;
104};
105
106
108
109#endif // QGSVTPKVECTORTILEDATAPROVIDER_H
QFlags< DataProviderFlag > DataProviderFlags
Data provider flags.
Definition: qgis.h:1853
FileFilterType
Type of file filters.
Definition: qgis.h:1073
QFlags< VectorTileProviderCapability > VectorTileProviderCapabilities
Vector tile data provider capabilities.
Definition: qgis.h:4518
QFlags< SublayerQueryFlag > SublayerQueryFlags
Sublayer query flags.
Definition: qgis.h:1097
RendererUsage
Usage of the renderer.
Definition: qgis.h:2803
@ Unknown
Renderer used for unknown usage.
QFlags< VectorTileProviderFlag > VectorTileProviderFlags
Vector tile data provider flags.
Definition: qgis.h:4500
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.
QFlags< ReadFlag > ReadFlags
virtual QgsLayerMetadata layerMetadata() const
Returns layer metadata collected from the provider's source.
virtual bool isValid() const =0
Returns true if this is a valid layer.
virtual QString description() const =0
Returns description.
virtual QString htmlMetadata() const
Obtain a formatted HTML string containing assorted metadata for this data provider.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:44
A structured metadata store for a map layer.
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 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 QgsDataProvider * createProvider(const QString &uri, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags=QgsDataProvider::ReadFlags())
Class factory to return a pointer to a newly created QgsDataProvider object.
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.
Definition: qgsrectangle.h:42
Defines a set of tile matrices for multiple zoom levels.
Definition: qgstiles.h:250
Stores coordinates of a tile in a tile matrix set.
Definition: qgstiles.h:38
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
QgsVectorTileDataProvider cannot be assigned.
virtual Qgis::VectorTileProviderCapabilities providerCapabilities() const
Returns flags containing the supported capabilities of the data provider.
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.
virtual Qgis::VectorTileProviderFlags providerFlags() const
Returns flags reflecting the behavior of the data provider.
virtual QVariantMap spriteDefinition() const
Returns the sprite definition for the provider, if available.
virtual QVariantMap styleDefinition() const
Returns the style definition for the provider, if available.
virtual QImage spriteImage() const
Returns the sprite image for the provider, if available.
Encapsulates properties of a vector tile matrix set, including tile origins and scaling information.
Keeps track of raw tile data that need to be decoded.
Utility class for reading and writing ESRI VTPK files.
Definition: qgsvtpktiles.h:38
Setting options for creating vector data providers.