QGIS API Documentation 3.41.0-Master (fda2aa46e9a)
|
The QgsAbstractLabelProvider class is an interface class. More...
#include <qgslabelingengine.h>
Public Types | |
enum | Flag { DrawLabels = 1 << 1 , MergeConnectedLines = 1 << 3 , CentroidMustBeInside = 1 << 4 } |
typedef QFlags< Flag > | Flags |
Public Member Functions | |
QgsAbstractLabelProvider (QgsMapLayer *layer, const QString &providerId=QString()) | |
Construct the provider with default values. | |
virtual | ~QgsAbstractLabelProvider ()=default |
virtual void | drawLabel (QgsRenderContext &context, pal::LabelPosition *label) const =0 |
Draw this label at the position determined by the labeling engine. | |
virtual void | drawLabelBackground (QgsRenderContext &context, pal::LabelPosition *label) const |
Draw the background for the specified label. | |
virtual void | drawUnplacedLabel (QgsRenderContext &context, pal::LabelPosition *label) const |
Draw an unplaced label. | |
Flags | flags () const |
Flags associated with the provider. | |
virtual QList< QgsLabelFeature * > | labelFeatures (QgsRenderContext &context)=0 |
Returns list of label features (they are owned by the provider and thus deleted on its destruction) | |
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) | |
virtual void | startRender (QgsRenderContext &context) |
To be called before rendering of labels begins. | |
virtual void | stopRender (QgsRenderContext &context) |
To be called after rendering is complete. | |
virtual QList< QgsAbstractLabelProvider * > | subProviders () |
Returns list of child providers - useful if the provider needs to put labels into more layers with different configuration. | |
Qgis::UpsideDownLabelHandling | upsidedownLabels () const |
How to handle labels that would be upside down. | |
Protected Attributes | |
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. | |
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. | |
The QgsAbstractLabelProvider class is an interface class.
Implementations return list of labels and their associated geometries - these are used by QgsLabelingEngine to compute the final layout of labels.
Implementations also take care of drawing the returned final label positions.
Definition at line 50 of file qgslabelingengine.h.
typedef QFlags< Flag > QgsAbstractLabelProvider::Flags |
Definition at line 68 of file qgslabelingengine.h.
Definition at line 62 of file qgslabelingengine.h.
QgsAbstractLabelProvider::QgsAbstractLabelProvider | ( | QgsMapLayer * | layer, |
const QString & | providerId = QString() |
||
) |
Construct the provider with default values.
Definition at line 686 of file qgslabelingengine.cpp.
|
virtualdefault |
|
pure virtual |
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().
Implemented in QgsLabelSinkProvider, QgsRuleBasedLabelSinkProvider, QgsVectorLayerLabelProvider, QgsMeshLayerLabelProvider, and QgsVectorLayerDiagramProvider.
|
virtual |
Draw the background for the specified label.
This is called in turn for each label provider before any actual labels are rendered, and allows the provider to render content which should be drawn below ALL map labels (such as background rectangles or callout lines).
Before any calls to drawLabelBackground(), a provider should be prepared for rendering by a call to startRender() and a corresponding call to stopRender().
Reimplemented in QgsVectorLayerLabelProvider.
Definition at line 704 of file qgslabelingengine.cpp.
|
virtual |
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 in QgsLabelSinkProvider, QgsRuleBasedLabelSinkProvider, and QgsVectorLayerLabelProvider.
Definition at line 699 of file qgslabelingengine.cpp.
|
inline |
Flags associated with the provider.
Definition at line 146 of file qgslabelingengine.h.
|
pure virtual |
Returns list of label features (they are owned by the provider and thus deleted on its destruction)
Implemented in QgsVectorLayerLabelProvider, QgsMeshLayerLabelProvider, and QgsVectorLayerDiagramProvider.
|
inline |
Returns the associated layer, or nullptr
if no layer is associated with the provider.
Definition at line 136 of file qgslabelingengine.h.
QgsExpressionContextScope * QgsAbstractLabelProvider::layerExpressionContextScope | ( | ) | const |
Returns the expression context scope created from the layer associated with this provider.
Definition at line 727 of file qgslabelingengine.cpp.
|
inline |
Returns ID of associated layer, or empty string if no layer is associated with the provider.
Definition at line 129 of file qgslabelingengine.h.
|
inline |
Returns the symbology reference scale of the layer associated with this provider.
Definition at line 172 of file qgslabelingengine.h.
|
inline |
Name of the layer (for statistics, debugging etc.) - does not need to be unique.
Definition at line 126 of file qgslabelingengine.h.
|
inline |
How the feature geometries will work as obstacles.
Definition at line 155 of file qgslabelingengine.h.
|
inline |
What placement strategy to use for the labels.
Definition at line 149 of file qgslabelingengine.h.
|
inline |
Default priority of labels (may be overridden by individual labels)
Definition at line 152 of file qgslabelingengine.h.
|
inline |
Returns provider ID - useful in case there is more than one label provider within a layer (e.g.
in case of rule-based labeling - provider ID = rule's key). May be empty string if layer ID is sufficient for identification of provider's configuration.
Definition at line 143 of file qgslabelingengine.h.
|
inline |
Associate provider with a labeling engine (should be only called internally from QgsLabelingEngine)
Definition at line 60 of file qgslabelingengine.h.
|
virtual |
To be called before rendering of labels begins.
Must be accompanied by a corresponding call to stopRender()
Reimplemented in QgsVectorLayerLabelProvider, and QgsMeshLayerLabelProvider.
Definition at line 709 of file qgslabelingengine.cpp.
|
virtual |
To be called after rendering is complete.
Reimplemented in QgsVectorLayerLabelProvider, and QgsMeshLayerLabelProvider.
Definition at line 718 of file qgslabelingengine.cpp.
|
inlinevirtual |
Returns list of child providers - useful if the provider needs to put labels into more layers with different configuration.
Reimplemented in QgsRuleBasedLabelProvider, and QgsVectorTileBasicLabelProvider.
Definition at line 123 of file qgslabelingengine.h.
|
inline |
How to handle labels that would be upside down.
Definition at line 158 of file qgslabelingengine.h.
|
protected |
Associated labeling engine.
Definition at line 176 of file qgslabelingengine.h.
|
protected |
Flags altering drawing and registration of features.
Definition at line 187 of file qgslabelingengine.h.
|
protected |
Weak pointer to source layer.
Definition at line 183 of file qgslabelingengine.h.
|
protected |
Associated layer's ID, if applicable.
Definition at line 181 of file qgslabelingengine.h.
|
protected |
Name of the layer.
Definition at line 179 of file qgslabelingengine.h.
|
protected |
Type of the obstacle of feature geometries.
Definition at line 193 of file qgslabelingengine.h.
|
protected |
Placement strategy.
Definition at line 189 of file qgslabelingengine.h.
|
protected |
Default priority of labels.
Definition at line 191 of file qgslabelingengine.h.
|
protected |
Associated provider ID (one layer may have multiple providers, e.g. in rule-based labeling)
Definition at line 185 of file qgslabelingengine.h.
|
protected |
How to handle labels that would be upside down.
Definition at line 195 of file qgslabelingengine.h.