QGIS API Documentation
2.14.0-Essen
|
The QgsVectorLayerLabelProvider class implements a label provider for vector layers. More...
#include <qgsvectorlayerlabelprovider.h>
Public Member Functions | |
QgsVectorLayerLabelProvider (QgsVectorLayer *layer, bool withFeatureLoop=true, const QgsPalLayerSettings *settings=nullptr, const QString &layerName=QString()) | |
Convenience constructor to initialize the provider from given vector layer. More... | |
QgsVectorLayerLabelProvider (const QgsPalLayerSettings &settings, const QString &layerId, const QgsFields &fields, const QgsCoordinateReferenceSystem &crs, QgsAbstractFeatureSource *source, bool ownsSource, QgsFeatureRendererV2 *renderer=nullptr) | |
Construct diagram provider with all the necessary configuration parameters. More... | |
~QgsVectorLayerLabelProvider () | |
virtual void | drawLabel (QgsRenderContext &context, pal::LabelPosition *label) const override |
draw this label at the position determined by the labeling engine More... | |
virtual QList< QgsLabelFeature * > | labelFeatures (QgsRenderContext &context) override |
Return list of label features (they are owned by the provider and thus deleted on its destruction) More... | |
virtual bool | prepare (const QgsRenderContext &context, QStringList &attributeNames) |
Prepare for registration of features. More... | |
virtual void | registerFeature (QgsFeature &feature, QgsRenderContext &context, QgsGeometry *obstacleGeometry=nullptr) |
Register a feature for labeling as one or more QgsLabelFeature objects stored into mLabels. More... | |
Public Member Functions inherited from QgsAbstractLabelProvider | |
QgsAbstractLabelProvider (const QString &layerId=QString()) | |
Construct the provider with default values. More... | |
virtual | ~QgsAbstractLabelProvider () |
Vritual destructor. More... | |
Flags | flags () const |
Flags 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... | |
unsigned int | linePlacementFlags () const |
For layers with linestring geometries - extra placement flags (or-ed combination of QgsPalLayerSettings::LinePlacementFlags) More... | |
QString | name () const |
Name of the layer (for statistics, debugging etc.) - does not need to be unique. More... | |
QgsPalLayerSettings::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... | |
void | setEngine (const QgsLabelingEngineV2 *engine) |
Associate provider with a labeling engine (should be only called internally from QgsLabelingEngineV2) More... | |
virtual QList< QgsAbstractLabelProvider * > | subProviders () |
Return list of child providers - useful if the provider needs to put labels into more layers with different configuration. More... | |
QgsPalLayerSettings::UpsideDownLabels | upsidedownLabels () const |
How to handle labels that would be upside down. More... | |
Static Public Member Functions | |
static QgsGeometry * | getPointObstacleGeometry (QgsFeature &fet, QgsRenderContext &context, const QgsSymbolV2List &symbols) |
Returns the geometry for a point feature which should be used as an obstacle for labels. More... | |
Protected Member Functions | |
void | drawLabelPrivate (pal::LabelPosition *label, QgsRenderContext &context, QgsPalLayerSettings &tmpLyr, QgsPalLabeling::DrawLabelType drawType, double dpiRatio=1.0) const |
Internal label drawing method. More... | |
void | init () |
initialization method - called from constructors More... | |
Protected Attributes | |
QgsCoordinateReferenceSystem | mCrs |
Layer's CRS. More... | |
QgsFields | mFields |
Layer's fields. More... | |
QList< QgsLabelFeature * > | mLabels |
List of generated. More... | |
QGis::GeometryType | mLayerGeometryType |
Geometry type of layer. More... | |
bool | mOwnsSource |
Whether layer's feature source is owned. More... | |
QgsFeatureRendererV2 * | mRenderer |
QgsPalLayerSettings | mSettings |
Layer's labeling configuration. More... | |
QgsAbstractFeatureSource * | mSource |
Layer's feature source. More... | |
Protected Attributes inherited from QgsAbstractLabelProvider | |
const QgsLabelingEngineV2 * | mEngine |
Associated labeling engine. More... | |
Flags | mFlags |
Flags altering drawing and registration of features. More... | |
QString | mLayerId |
Associated layer's ID, if applicable. More... | |
unsigned int | mLinePlacementFlags |
Extra placement flags for linestring geometries. More... | |
QString | mName |
Name of the layer. More... | |
QgsPalLayerSettings::ObstacleType | mObstacleType |
Type of the obstacle of feature geometries. More... | |
QgsPalLayerSettings::Placement | mPlacement |
Placement strategy. More... | |
double | mPriority |
Default priority of labels. 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, FitInPolygonOnly = 1 << 5, LabelPerFeaturePart = 1 << 6 } |
The QgsVectorLayerLabelProvider class implements a label provider for vector layers.
Parameters for the labeling are taken from the layer's custom properties or from the given settings.
Definition at line 35 of file qgsvectorlayerlabelprovider.h.
|
explicit |
Convenience constructor to initialize the provider from given vector layer.
Definition at line 52 of file qgsvectorlayerlabelprovider.cpp.
QgsVectorLayerLabelProvider::QgsVectorLayerLabelProvider | ( | const QgsPalLayerSettings & | settings, |
const QString & | layerId, | ||
const QgsFields & | fields, | ||
const QgsCoordinateReferenceSystem & | crs, | ||
QgsAbstractFeatureSource * | source, | ||
bool | ownsSource, | ||
QgsFeatureRendererV2 * | renderer = nullptr |
||
) |
Construct diagram provider with all the necessary configuration parameters.
Definition at line 76 of file qgsvectorlayerlabelprovider.cpp.
QgsVectorLayerLabelProvider::~QgsVectorLayerLabelProvider | ( | ) |
Definition at line 122 of file qgsvectorlayerlabelprovider.cpp.
|
overridevirtual |
draw this label at the position determined by the labeling engine
Implements QgsAbstractLabelProvider.
Reimplemented in QgsDxfLabelProvider.
Definition at line 399 of file qgsvectorlayerlabelprovider.cpp.
|
protected |
Internal label drawing method.
Definition at line 497 of file qgsvectorlayerlabelprovider.cpp.
|
static |
Returns the geometry for a point feature which should be used as an obstacle for labels.
This obstacle geometry will respect the dimensions and offsets of the symbol used to render the point, and ensures that labels will not overlap large or offset points.
fet | point feature |
context | render context |
symbols | symbols rendered for point feature |
Definition at line 324 of file qgsvectorlayerlabelprovider.cpp.
|
protected |
initialization method - called from constructors
Definition at line 95 of file qgsvectorlayerlabelprovider.cpp.
|
overridevirtual |
Return list of label features (they are owned by the provider and thus deleted on its destruction)
Implements QgsAbstractLabelProvider.
Definition at line 259 of file qgsvectorlayerlabelprovider.cpp.
|
virtual |
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 in QgsRuleBasedLabelProvider.
Definition at line 131 of file qgsvectorlayerlabelprovider.cpp.
|
virtual |
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 (eg, 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. |
Reimplemented in QgsRuleBasedLabelProvider.
Definition at line 316 of file qgsvectorlayerlabelprovider.cpp.
|
protected |
Layer's CRS.
Definition at line 109 of file qgsvectorlayerlabelprovider.h.
|
protected |
Layer's fields.
Definition at line 107 of file qgsvectorlayerlabelprovider.h.
|
protected |
List of generated.
Definition at line 116 of file qgsvectorlayerlabelprovider.h.
|
protected |
Geometry type of layer.
Definition at line 100 of file qgsvectorlayerlabelprovider.h.
|
protected |
Whether layer's feature source is owned.
Definition at line 113 of file qgsvectorlayerlabelprovider.h.
|
protected |
Definition at line 102 of file qgsvectorlayerlabelprovider.h.
|
protected |
Layer's labeling configuration.
Definition at line 98 of file qgsvectorlayerlabelprovider.h.
|
protected |
Layer's feature source.
Definition at line 111 of file qgsvectorlayerlabelprovider.h.