QGIS API Documentation
3.20.0-Odense (decaadbb31)
|
Label provider for rule based labeling. More...
#include <qgsrulebasedlabeling.h>
Public Member Functions | |
QgsRuleBasedLabelProvider (const QgsRuleBasedLabeling &rules, QgsVectorLayer *layer, bool withFeatureLoop=true) | |
virtual QgsVectorLayerLabelProvider * | createProvider (QgsVectorLayer *layer, const QString &providerId, bool withFeatureLoop, const QgsPalLayerSettings *settings) |
create a label provider More... | |
bool | prepare (QgsRenderContext &context, QSet< QString > &attributeNames) override |
Prepare for registration of features. More... | |
void | registerFeature (const QgsFeature &feature, QgsRenderContext &context, const QgsGeometry &obstacleGeometry=QgsGeometry(), const QgsSymbol *symbol=nullptr) override |
Register a feature for labeling as one or more QgsLabelFeature objects stored into mLabels. More... | |
QList< QgsAbstractLabelProvider * > | subProviders () override |
Returns subproviders. 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... | |
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... | |
QString | layerId () const |
Returns ID of associated layer, or empty string if no layer is associated with the 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... | |
QgsPalLayerSettings::Placement | 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... | |
QgsPalLayerSettings::UpsideDownLabels | upsidedownLabels () const |
How to handle labels that would be upside down. More... | |
Protected Attributes | |
std::unique_ptr< QgsRuleBasedLabeling > | mRules |
owned copy More... | |
QgsRuleBasedLabeling::RuleToProviderMap | mSubProviders |
label providers are owned by labeling engine 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 |
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... | |
QgsPalLayerSettings::Placement | mPlacement |
Placement strategy. More... | |
double | mPriority |
Default priority of labels. More... | |
QString | mProviderId |
Associated provider ID (one layer may have multiple providers, e.g. in rule-based labeling) More... | |
QgsPalLayerSettings::UpsideDownLabels | mUpsidedownLabels |
How to handle labels that would be upside down. More... | |
Additional Inherited Members | |
Public Types inherited from QgsAbstractLabelProvider | |
enum | Flag { DrawLabels = 1 << 1 , DrawAllLabels = 1 << 2 , 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... | |
Label provider for rule based labeling.
Definition at line 405 of file qgsrulebasedlabeling.h.
QgsRuleBasedLabelProvider::QgsRuleBasedLabelProvider | ( | const QgsRuleBasedLabeling & | rules, |
QgsVectorLayer * | layer, | ||
bool | withFeatureLoop = true |
||
) |
Definition at line 19 of file qgsrulebasedlabeling.cpp.
|
virtual |
create a label provider
Reimplemented in QgsRuleBasedLabelSinkProvider.
Definition at line 26 of file qgsrulebasedlabeling.cpp.
|
overridevirtual |
Prepare for registration of features.
Must be called after provider has been added to engine (uses its map settings)
context | render context. |
attributeNames | list of attribute names to which additional required attributes shall be added |
Reimplemented from QgsVectorLayerLabelProvider.
Definition at line 31 of file qgsrulebasedlabeling.cpp.
|
overridevirtual |
Register a feature for labeling as one or more QgsLabelFeature objects stored into mLabels.
feature | feature to label |
context | render context. The QgsExpressionContext contained within the render context must have already had the feature and fields sets prior to calling this method. |
obstacleGeometry | optional obstacle geometry, if a different geometry to the feature's geometry should be used as an obstacle for labels (e.g., if the feature has been rendered with an offset point symbol, the obstacle geometry should represent the bounds of the offset symbol). If not set, the feature's original geometry will be used as an obstacle for labels. |
symbol | feature symbol to label (ownership is not transferred - the symbol must exist until after labeling is complete) |
Reimplemented from QgsVectorLayerLabelProvider.
Definition at line 41 of file qgsrulebasedlabeling.cpp.
|
overridevirtual |
Returns subproviders.
Reimplemented from QgsAbstractLabelProvider.
Definition at line 47 of file qgsrulebasedlabeling.cpp.
|
protected |
owned copy
Definition at line 424 of file qgsrulebasedlabeling.h.
|
protected |
label providers are owned by labeling engine
Definition at line 426 of file qgsrulebasedlabeling.h.