QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
Internal base class for implementation of label providers for vector tile labeling. More...
#include <qgsvectortilelabeling.h>
Public Member Functions | |
QgsVectorTileLabelProvider (QgsVectorTileLayer *layer) | |
Constructs base label provider class for the given vector tile layer. More... | |
virtual void | registerTileFeatures (const QgsVectorTileRendererData &tile, QgsRenderContext &context)=0 |
Registers label features for given tile to the labeling engine. More... | |
virtual QSet< QString > | requiredLayers (QgsRenderContext &context, int tileZoom) const |
Returns a list of the layers required for labeling. More... | |
virtual void | setFields (const QMap< QString, QgsFields > &perLayerFields)=0 |
Sets fields for each sub-layer. More... | |
virtual QMap< QString, QSet< QString > > | usedAttributes (const QgsRenderContext &context, int tileZoom) const =0 |
Returns field names for each sub-layer that are required for labeling. More... | |
Public Member Functions inherited from QgsVectorLayerLabelProvider | |
QgsVectorLayerLabelProvider (QgsVectorLayer *layer, const QString &providerId, bool withFeatureLoop, const QgsPalLayerSettings *settings, const QString &layerName=QString()) | |
Convenience constructor to initialize the provider from given vector layer. More... | |
QgsVectorLayerLabelProvider (QgsWkbTypes::GeometryType geometryType, const QgsFields &fields, const QgsCoordinateReferenceSystem &crs, const QString &providerId, const QgsPalLayerSettings *settings, QgsMapLayer *layer, const QString &layerName=QString()) | |
Constructor to initialize the provider from any map layer (e.g. vector tile layer) More... | |
~QgsVectorLayerLabelProvider () override | |
void | drawLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw this label at the position determined by the labeling engine. More... | |
void | drawLabelBackground (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw the background for the specified label. More... | |
void | drawUnplacedLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw an unplaced label. More... | |
QList< QgsLabelFeature * > | labelFeatures (QgsRenderContext &context) override |
Returns list of label features (they are owned by the provider and thus deleted on its destruction) More... | |
virtual bool | prepare (QgsRenderContext &context, QSet< QString > &attributeNames) |
Prepare for registration of features. More... | |
virtual QList< QgsLabelFeature * > | registerFeature (const QgsFeature &feature, QgsRenderContext &context, const QgsGeometry &obstacleGeometry=QgsGeometry(), const QgsSymbol *symbol=nullptr) |
Register a feature for labeling as one or more QgsLabelFeature objects stored into mLabels. More... | |
void | setFields (const QgsFields &fields) |
Sets fields of this label provider. More... | |
const QgsPalLayerSettings & | settings () const |
Returns the layer's settings. More... | |
void | startRender (QgsRenderContext &context) override |
To be called before rendering of labels begins. More... | |
void | stopRender (QgsRenderContext &context) override |
To be called after rendering is complete. More... | |
Public Member Functions inherited from QgsAbstractLabelProvider | |
QgsAbstractLabelProvider (QgsMapLayer *layer, const QString &providerId=QString()) | |
Construct the provider with default values. More... | |
virtual | ~QgsAbstractLabelProvider ()=default |
Flags | flags () const |
Flags associated with the provider. More... | |
QgsMapLayer * | layer () const |
Returns the associated layer, or nullptr if no layer is associated with the provider. More... | |
QgsExpressionContextScope * | layerExpressionContextScope () const |
Returns the expression context scope created from the layer associated with this provider. More... | |
QString | layerId () const |
Returns ID of associated layer, or empty string if no layer is associated with the provider. More... | |
double | layerReferenceScale () const |
Returns the symbology reference scale of the layer associated with this provider. More... | |
QString | name () const |
Name of the layer (for statistics, debugging etc.) - does not need to be unique. More... | |
QgsLabelObstacleSettings::ObstacleType | obstacleType () const |
How the feature geometries will work as obstacles. More... | |
Qgis::LabelPlacement | placement () const |
What placement strategy to use for the labels. More... | |
double | priority () const |
Default priority of labels (may be overridden by individual labels) More... | |
QString | providerId () const |
Returns provider ID - useful in case there is more than one label provider within a layer (e.g. More... | |
void | setEngine (const QgsLabelingEngine *engine) |
Associate provider with a labeling engine (should be only called internally from QgsLabelingEngine) More... | |
virtual QList< QgsAbstractLabelProvider * > | subProviders () |
Returns list of child providers - useful if the provider needs to put labels into more layers with different configuration. More... | |
Qgis::UpsideDownLabelHandling | upsidedownLabels () const |
How to handle labels that would be upside down. More... | |
Additional Inherited Members | |
Public Types inherited from QgsAbstractLabelProvider | |
enum | Flag { DrawLabels = 1 << 1, MergeConnectedLines = 1 << 3, CentroidMustBeInside = 1 << 4 } |
Static Public Member Functions inherited from QgsVectorLayerLabelProvider | |
static QgsGeometry | getPointObstacleGeometry (QgsFeature &fet, QgsRenderContext &context, const QgsSymbolList &symbols) |
Returns the geometry for a point feature which should be used as an obstacle for labels. More... | |
Protected Member Functions inherited from QgsVectorLayerLabelProvider | |
void | drawLabelPrivate (pal::LabelPosition *label, QgsRenderContext &context, QgsPalLayerSettings &tmpLyr, QgsTextRenderer::TextPart drawType, double dpiRatio=1.0) const |
Internal label drawing method. More... | |
void | init () |
initialization method - called from constructors More... | |
Protected Attributes inherited from QgsVectorLayerLabelProvider | |
QgsCoordinateReferenceSystem | mCrs |
Layer's CRS. More... | |
QgsFields | mFields |
Layer's fields. More... | |
QList< QgsLabelFeature * > | mLabels |
List of generated. More... | |
QgsWkbTypes::GeometryType | mLayerGeometryType |
Geometry type of layer. More... | |
QgsFeatureRenderer * | mRenderer = nullptr |
QgsPalLayerSettings | mSettings |
Layer's labeling configuration. More... | |
std::unique_ptr< QgsAbstractFeatureSource > | mSource |
Layer's feature source. More... | |
Protected Attributes inherited from QgsAbstractLabelProvider | |
const QgsLabelingEngine * | mEngine = nullptr |
Associated labeling engine. More... | |
Flags | mFlags = DrawLabels |
Flags altering drawing and registration of features. More... | |
QgsWeakMapLayerPointer | mLayer |
Weak pointer to source layer. More... | |
QString | mLayerId |
Associated layer's ID, if applicable. More... | |
QString | mName |
Name of the layer. More... | |
QgsLabelObstacleSettings::ObstacleType | mObstacleType = QgsLabelObstacleSettings::PolygonBoundary |
Type of the obstacle of feature geometries. More... | |
Qgis::LabelPlacement | mPlacement = Qgis::LabelPlacement::AroundPoint |
Placement strategy. More... | |
double | mPriority = 0.5 |
Default priority of labels. More... | |
QString | mProviderId |
Associated provider ID (one layer may have multiple providers, e.g. in rule-based labeling) More... | |
Qgis::UpsideDownLabelHandling | mUpsidedownLabels = Qgis::UpsideDownLabelHandling::FlipUpsideDownLabels |
How to handle labels that would be upside down. More... | |
Internal base class for implementation of label providers for vector tile labeling.
Definition at line 33 of file qgsvectortilelabeling.h.
|
explicit |
Constructs base label provider class for the given vector tile layer.
Definition at line 20 of file qgsvectortilelabeling.cpp.
|
pure virtual |
Registers label features for given tile to the labeling engine.
Implemented in QgsVectorTileBasicLabelProvider.
|
inlinevirtual |
Returns a list of the layers required for labeling.
Only layers which are labeled at the specified tileZoom should be included in this list.
An empty string present in the list indicates that all layer in the tiles are required.
Reimplemented in QgsVectorTileBasicLabelProvider.
Definition at line 53 of file qgsvectortilelabeling.h.
|
pure virtual |
Sets fields for each sub-layer.
Implemented in QgsVectorTileBasicLabelProvider.
|
pure virtual |
Returns field names for each sub-layer that are required for labeling.
Implemented in QgsVectorTileBasicLabelProvider.