QGIS API Documentation 3.41.0-Master (64d82d4c163)
|
Implements a derived label provider for rule based labels for use with QgsLabelSink. More...
#include <qgslabelsink.h>
Public Member Functions | |
QgsRuleBasedLabelSinkProvider (const QgsRuleBasedLabeling &rules, QgsVectorLayer *layer, QgsLabelSink *sink) | |
Creates a rule based label sink provider which will draw/register labels in sink. | |
QgsVectorLayerLabelProvider * | createProvider (QgsVectorLayer *layer, const QString &providerId, bool withFeatureLoop, const QgsPalLayerSettings *settings) override |
Creates a QgsRuleBasedLabelSinkProvider. | |
void | drawLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw this label at the position determined by the labeling engine. | |
void | drawUnplacedLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw an unplaced label. | |
Q_DECL_DEPRECATED void | reinit (QgsVectorLayer *layer) |
Reinitialize the subproviders with QgsLabelSinkProviders. | |
![]() | |
QgsRuleBasedLabelProvider (const QgsRuleBasedLabeling &rules, QgsVectorLayer *layer, bool withFeatureLoop=true) | |
bool | prepare (QgsRenderContext &context, QSet< QString > &attributeNames) override |
Prepare for registration of features. | |
QList< QgsLabelFeature * > | 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. | |
QList< QgsAbstractLabelProvider * > | subProviders () override |
Returns subproviders. | |
![]() | |
QgsVectorLayerLabelProvider (Qgis::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) | |
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. | |
~QgsVectorLayerLabelProvider () override | |
void | drawLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw this label at the position determined by the labeling engine. | |
void | drawLabelBackground (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw the background for the specified label. | |
void | drawUnplacedLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
Draw an unplaced label. | |
QList< QgsLabelFeature * > | labelFeatures (QgsRenderContext &context) override |
Returns list of label features (they are owned by the provider and thus deleted on its destruction) | |
void | setFields (const QgsFields &fields) |
Sets fields of this label provider. | |
const QgsPalLayerSettings & | settings () const |
Returns the layer's settings. | |
void | startRender (QgsRenderContext &context) override |
To be called before rendering of labels begins. | |
void | stopRender (QgsRenderContext &context) override |
To be called after rendering is complete. | |
![]() | |
QgsAbstractLabelProvider (QgsMapLayer *layer, const QString &providerId=QString()) | |
Construct the provider with default values. | |
virtual | ~QgsAbstractLabelProvider ()=default |
Flags | flags () const |
Flags associated with the provider. | |
QgsMapLayer * | layer () const |
Returns the associated layer, or nullptr if no layer is associated with the provider. | |
QgsExpressionContextScope * | layerExpressionContextScope () const |
Returns the expression context scope created from the layer associated with this provider. | |
QString | layerId () const |
Returns ID of associated layer, or empty string if no layer is associated with the provider. | |
double | layerReferenceScale () const |
Returns the symbology reference scale of the layer associated with this provider. | |
QString | name () const |
Name of the layer (for statistics, debugging etc.) - does not need to be unique. | |
QgsLabelObstacleSettings::ObstacleType | obstacleType () const |
How the feature geometries will work as obstacles. | |
Qgis::LabelPlacement | placement () const |
What placement strategy to use for the labels. | |
double | priority () const |
Default priority of labels (may be overridden by individual labels). | |
QString | providerId () const |
Returns provider ID - useful in case there is more than one label provider within a layer (e.g. | |
void | setEngine (const QgsLabelingEngine *engine) |
Associate provider with a labeling engine (should be only called internally from QgsLabelingEngine) | |
Qgis::UpsideDownLabelHandling | upsidedownLabels () const |
How to handle labels that would be upside down. | |
Additional Inherited Members | |
![]() | |
enum | Flag { DrawLabels = 1 << 1 , MergeConnectedLines = 1 << 3 , CentroidMustBeInside = 1 << 4 } |
typedef QFlags< Flag > | Flags |
![]() | |
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. | |
![]() | |
void | drawLabelPrivate (pal::LabelPosition *label, QgsRenderContext &context, QgsPalLayerSettings &tmpLyr, Qgis::TextComponent drawType, double dpiRatio=1.0) const |
Internal label drawing method. | |
void | init () |
initialization method - called from constructors | |
![]() | |
std::unique_ptr< QgsRuleBasedLabeling > | mRules |
owned copy | |
std::vector< std::pair< QgsRuleBasedLabeling::Rule *, QgsVectorLayerLabelProvider * > > | mSubProviders |
label providers are owned by labeling engine | |
![]() | |
QgsCoordinateReferenceSystem | mCrs |
Layer's CRS. | |
QgsFields | mFields |
Layer's fields. | |
QList< QgsLabelFeature * > | mLabels |
List of generated. | |
Qgis::GeometryType | mLayerGeometryType |
Geometry type of layer. | |
QgsFeatureRenderer * | mRenderer = nullptr |
QgsPalLayerSettings | mSettings |
Layer's labeling configuration. | |
std::unique_ptr< QgsAbstractFeatureSource > | mSource |
Layer's feature source. | |
![]() | |
const QgsLabelingEngine * | mEngine = nullptr |
Associated labeling engine. | |
Flags | mFlags = DrawLabels |
Flags altering drawing and registration of features. | |
QgsWeakMapLayerPointer | mLayer |
Weak pointer to source layer. | |
QString | mLayerId |
Associated layer's ID, if applicable. | |
QString | mName |
Name of the layer. | |
QgsLabelObstacleSettings::ObstacleType | mObstacleType = QgsLabelObstacleSettings::ObstacleType::PolygonBoundary |
Type of the obstacle of feature geometries. | |
Qgis::LabelPlacement | mPlacement = Qgis::LabelPlacement::AroundPoint |
Placement strategy. | |
double | mPriority = 0.5 |
Default priority of labels. 0 = highest priority, 1 = lowest priority. | |
QString | mProviderId |
Associated provider ID (one layer may have multiple providers, e.g. in rule-based labeling) | |
Qgis::UpsideDownLabelHandling | mUpsidedownLabels = Qgis::UpsideDownLabelHandling::FlipUpsideDownLabels |
How to handle labels that would be upside down. | |
Implements a derived label provider for rule based labels for use with QgsLabelSink.
Definition at line 94 of file qgslabelsink.h.
|
explicit |
Creates a rule based label sink provider which will draw/register labels in sink.
Definition at line 41 of file qgslabelsink.cpp.
|
overridevirtual |
Creates a QgsRuleBasedLabelSinkProvider.
Reimplemented from QgsRuleBasedLabelProvider.
Definition at line 53 of file qgslabelsink.cpp.
|
overridevirtual |
Draw this label at the position determined by the labeling engine.
Before any calls to drawLabel(), a provider should be prepared for rendering by a call to startRender() and a corresponding call to stopRender().
Implements QgsAbstractLabelProvider.
Definition at line 59 of file qgslabelsink.cpp.
|
overridevirtual |
Draw an unplaced label.
These correspond to features which were registered for labeling, but which could not be labeled (e.g. due to conflicting labels).
The default behavior is to draw nothing for these labels.
Reimplemented from QgsAbstractLabelProvider.
Definition at line 65 of file qgslabelsink.cpp.
void QgsRuleBasedLabelSinkProvider::reinit | ( | QgsVectorLayer * | layer | ) |
Reinitialize the subproviders with QgsLabelSinkProviders.
Definition at line 48 of file qgslabelsink.cpp.