QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
vectortile
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
20
#include "
qgsmapclippingregion.h
"
21
#include "
qgsmaplayerrenderer.h
"
22
#include "
qgsvectortilematrixset.h
"
23
#include "
qgsvectortilerenderer.h
"
24
25
#define SIP_NO_FILE
26
27
class
QgsVectorTileLayer
;
28
class
QgsVectorTileRawData
;
29
class
QgsVectorTileLabelProvider
;
30
class
QgsVectorTileDataProvider
;
31
32
45
class
QgsVectorTileLayerRenderer
:
public
QgsMapLayerRenderer
46
{
47
public
:
49
QgsVectorTileLayerRenderer
(
QgsVectorTileLayer
*layer,
QgsRenderContext
&context );
50
~QgsVectorTileLayerRenderer
()
override
;
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
#endif
// QGSVECTORTILELAYERRENDERER_H
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition
qgsfeedback.h:44
QgsMapLayerRenderer::QgsMapLayerRenderer
QgsMapLayerRenderer(const QString &layerID, QgsRenderContext *context=nullptr)
Constructor for QgsMapLayerRenderer, with the associated layerID and render context.
Definition
qgsmaplayerrenderer.h:57
QgsRenderContext
Contains information about the context of a rendering operation.
Definition
qgsrendercontext.h:63
QgsTileMatrix
Defines a matrix of tiles for a single zoom level: it is defined by its size (width *.
Definition
qgstiles.h:171
QgsTileRange
A range of tiles in a tile matrix.
Definition
qgstiles.h:123
QgsVectorTileDataProvider
Base class for vector tile layer data providers.
Definition
qgsvectortiledataprovider.h:75
QgsVectorTileLabelProvider
Internal base class for implementation of label providers for vector tile labeling.
Definition
qgsvectortilelabeling.h:37
QgsVectorTileLayerRenderer::forceRasterRender
bool forceRasterRender() const override
Returns true if the renderer must be rendered to a raster paint device (e.g.
Definition
qgsvectortilelayerrenderer.cpp:289
QgsVectorTileLayerRenderer::feedback
QgsFeedback * feedback() const override
Access to feedback object of the layer renderer (may be nullptr).
Definition
qgsvectortilelayerrenderer.h:53
QgsVectorTileLayerRenderer::~QgsVectorTileLayerRenderer
~QgsVectorTileLayerRenderer() override
QgsVectorTileLayerRenderer::QgsVectorTileLayerRenderer
QgsVectorTileLayerRenderer(QgsVectorTileLayer *layer, QgsRenderContext &context)
Creates the renderer. Always called from main thread, should copy whatever necessary from the layer.
Definition
qgsvectortilelayerrenderer.cpp:44
QgsVectorTileLayerRenderer::render
bool render() override
Do the rendering (based on data stored in the class).
Definition
qgsvectortilelayerrenderer.cpp:82
QgsVectorTileLayer
Implements a map layer that is dedicated to rendering of vector tiles.
Definition
qgsvectortilelayer.h:94
QgsVectorTileMatrixSet
Encapsulates properties of a vector tile matrix set, including tile origins and scaling information.
Definition
qgsvectortilematrixset.h:31
QgsVectorTileRawData
Keeps track of raw tile data from one or more sources that need to be decoded.
Definition
qgsvectortileloader.h:40
qgsmapclippingregion.h
qgsmaplayerrenderer.h
qgsvectortilematrixset.h
qgsvectortilerenderer.h
Generated on
for QGIS API Documentation by
1.17.0