QGIS API Documentation 3.99.0-Master (c22de0620c0)
Loading...
Searching...
No Matches
qgsvectortilelayerrenderer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsvectortilelayerrenderer.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 QGSVECTORTILELAYERRENDERER_H
17#define QGSVECTORTILELAYERRENDERER_H
18
19
21#include "qgsmaplayerrenderer.h"
24
25#define SIP_NO_FILE
26
31
32
46{
47 public:
51
52 bool render() override;
53 QgsFeedback *feedback() const override { return mFeedback.get(); }
54 bool forceRasterRender() const override;
55
56 private:
57 void decodeAndDrawTile( const QgsVectorTileRawData &rawTile );
58
59 // data coming from the vector tile layer
60
61 QString mLayerName;
62
63 std::unique_ptr< QgsVectorTileDataProvider > mDataProvider;
64
66 std::unique_ptr<QgsVectorTileRenderer> mRenderer;
67
68 QPainter::CompositionMode mLayerBlendMode = QPainter::CompositionMode::CompositionMode_SourceOver;
69
74 QgsVectorTileLabelProvider *mLabelProvider = nullptr;
75
76 // Decoded tile data
77 QMap<QString, QgsVectorTileRendererData> mTileDataMap;
78
80 bool mDrawTileBoundaries = false;
81
83 bool mLabelsEnabled = true;
84
85 // temporary data used during rendering process
86
88 std::unique_ptr<QgsFeedback> mFeedback;
90 int mTileZoomToFetch = 0;
92 int mTileZoomToRender = 0;
93
95 QgsTileMatrix mTileMatrix;
97 QgsTileRange mTileRange;
99 QMap<QString, QgsFields> mPerLayerFields;
100
102 QSet< QString > mRequiredLayers;
103
105 QList< QgsFeature > mSelectedFeatures;
106
108 int mTotalDecodeTime = 0;
110 int mTotalDrawTime = 0;
111
112 QList< QgsMapClippingRegion > mClippingRegions;
113 double mLayerOpacity = 1.0;
114
115 QgsVectorTileMatrixSet mTileMatrixSet;
116
117 bool mEnableProfile = false;
118 quint64 mPreparationTime = 0;
119
120};
121
122
123#endif // QGSVECTORTILELAYERRENDERER_H
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
QgsMapLayerRenderer(const QString &layerID, QgsRenderContext *context=nullptr)
Constructor for QgsMapLayerRenderer, with the associated layerID and render context.
Contains information about the context of a rendering operation.
Defines a matrix of tiles for a single zoom level: it is defined by its size (width *.
Definition qgstiles.h:162
A range of tiles in a tile matrix.
Definition qgstiles.h:118
Base class for vector tile layer data providers.
Internal base class for implementation of label providers for vector tile labeling.
bool forceRasterRender() const override
Returns true if the renderer must be rendered to a raster paint device (e.g.
QgsFeedback * feedback() const override
Access to feedback object of the layer renderer (may be nullptr).
~QgsVectorTileLayerRenderer() override
QgsVectorTileLayerRenderer(QgsVectorTileLayer *layer, QgsRenderContext &context)
Creates the renderer. Always called from main thread, should copy whatever necessary from the layer.
bool render() override
Do the rendering (based on data stored in the class).
Implements a map layer that is dedicated to rendering of vector tiles.
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.