QGIS API Documentation
2.14.11-Essen
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
src
core
qgsvectorlayerlabelprovider.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsvectorlayerlabelprovider.h
3
--------------------------------------
4
Date : September 2015
5
Copyright : (C) 2015 by Martin Dobias
6
Email : wonder dot sk at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#ifndef QGSVECTORLAYERLABELPROVIDER_H
17
#define QGSVECTORLAYERLABELPROVIDER_H
18
19
#include "
qgslabelingenginev2.h
"
20
#include "
qgsrendererv2.h
"
21
22
class
QgsAbstractFeatureSource
;
23
class
QgsFeatureRendererV2
;
24
class
QgsSymbolV2
;
25
35
class
CORE_EXPORT
QgsVectorLayerLabelProvider
:
public
QgsAbstractLabelProvider
36
{
37
public
:
38
40
explicit
QgsVectorLayerLabelProvider
(
QgsVectorLayer
* layer,
bool
withFeatureLoop =
true
,
const
QgsPalLayerSettings
* settings =
nullptr
,
const
QString
& layerName =
QString
() );
41
43
QgsVectorLayerLabelProvider
(
const
QgsPalLayerSettings
& settings,
44
const
QString
& layerId,
45
const
QgsFields
& fields,
46
const
QgsCoordinateReferenceSystem
& crs,
47
QgsAbstractFeatureSource
* source,
48
bool
ownsSource,
49
QgsFeatureRendererV2
* renderer =
nullptr
);
50
51
~
QgsVectorLayerLabelProvider
();
52
53
virtual
QList<QgsLabelFeature*>
labelFeatures
(
QgsRenderContext
& context )
override
;
54
55
virtual
void
drawLabel
(
QgsRenderContext
& context,
pal::LabelPosition
* label )
const override
;
56
57
// new virtual methods
58
65
virtual
bool
prepare(
const
QgsRenderContext
& context,
QStringList
& attributeNames );
66
78
virtual
void
registerFeature(
QgsFeature
& feature,
QgsRenderContext
&context,
QgsGeometry
* obstacleGeometry =
nullptr
);
79
88
static
QgsGeometry
* getPointObstacleGeometry(
QgsFeature
& fet,
QgsRenderContext
& context,
const
QgsSymbolV2List
& symbols );
89
90
protected
:
92
void
init();
94
void
drawLabelPrivate(
pal::LabelPosition
* label,
QgsRenderContext
& context,
QgsPalLayerSettings
& tmpLyr,
QgsPalLabeling::DrawLabelType
drawType,
double
dpiRatio = 1.0 )
const
;
95
96
protected
:
98
QgsPalLayerSettings
mSettings
;
100
QGis::GeometryType
mLayerGeometryType
;
101
102
QgsFeatureRendererV2
*
mRenderer
;
103
104
// these are needed only if using own renderer loop
105
107
QgsFields
mFields
;
109
QgsCoordinateReferenceSystem
mCrs
;
111
QgsAbstractFeatureSource
*
mSource
;
113
bool
mOwnsSource
;
114
116
QList<QgsLabelFeature*>
mLabels
;
117
118
friend
class
TestQgsLabelingEngineV2;
119
};
120
121
#endif // QGSVECTORLAYERLABELPROVIDER_H
QgsVectorLayerLabelProvider::mRenderer
QgsFeatureRendererV2 * mRenderer
Definition:
qgsvectorlayerlabelprovider.h:102
QgsVectorLayerLabelProvider::mOwnsSource
bool mOwnsSource
Whether layer's feature source is owned.
Definition:
qgsvectorlayerlabelprovider.h:113
QgsPalLayerSettings
Definition:
qgspallabeling.h:64
QgsFields
Container of fields for a vector layer.
Definition:
qgsfield.h:187
QgsVectorLayerLabelProvider
The QgsVectorLayerLabelProvider class implements a label provider for vector layers.
Definition:
qgsvectorlayerlabelprovider.h:35
QgsGeometry
A geometry is the spatial representation of a feature.
Definition:
qgsgeometry.h:76
QGis::GeometryType
GeometryType
Definition:
qgis.h:111
QgsFeature
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition:
qgsfeature.h:187
QgsVectorLayerLabelProvider::mLabels
QList< QgsLabelFeature * > mLabels
List of generated.
Definition:
qgsvectorlayerlabelprovider.h:116
QgsAbstractLabelProvider::labelFeatures
virtual QList< QgsLabelFeature * > labelFeatures(QgsRenderContext &context)=0
Return list of label features (they are owned by the provider and thus deleted on its destruction) ...
QgsVectorLayerLabelProvider::mSettings
QgsPalLayerSettings mSettings
Layer's labeling configuration.
Definition:
qgsvectorlayerlabelprovider.h:98
qgsrendererv2.h
QString
QList< QgsLabelFeature * >
QgsAbstractFeatureSource
Base class that can be used for any class that is capable of returning features.
Definition:
qgsfeaturerequest.h:422
QgsSymbolV2
Definition:
qgssymbolv2.h:52
QStringList
QgsAbstractLabelProvider
The QgsAbstractLabelProvider class is an interface class.
Definition:
qgslabelingenginev2.h:42
QgsVectorLayerLabelProvider::mFields
QgsFields mFields
Layer's fields.
Definition:
qgsvectorlayerlabelprovider.h:107
QgsVectorLayerLabelProvider::mSource
QgsAbstractFeatureSource * mSource
Layer's feature source.
Definition:
qgsvectorlayerlabelprovider.h:111
QgsRenderContext
Contains information about the context of a rendering operation.
Definition:
qgsrendercontext.h:44
QgsVectorLayerLabelProvider::mCrs
QgsCoordinateReferenceSystem mCrs
Layer's CRS.
Definition:
qgsvectorlayerlabelprovider.h:109
qgslabelingenginev2.h
QgsCoordinateReferenceSystem
Class for storing a coordinate reference system (CRS)
Definition:
qgscoordinatereferencesystem.h:50
pal::LabelPosition
LabelPosition is a candidate feature label position.
Definition:
labelposition.h:50
QgsFeatureRendererV2
Definition:
qgsrendererv2.h:75
QgsAbstractLabelProvider::drawLabel
virtual void drawLabel(QgsRenderContext &context, pal::LabelPosition *label) const =0
draw this label at the position determined by the labeling engine
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition:
qgsvectorlayer.h:386
QgsPalLabeling::DrawLabelType
DrawLabelType
Definition:
qgspallabeling.h:863
QgsVectorLayerLabelProvider::mLayerGeometryType
QGis::GeometryType mLayerGeometryType
Geometry type of layer.
Definition:
qgsvectorlayerlabelprovider.h:100
Generated on Wed Jan 25 2017 08:47:20 for QGIS API Documentation by
1.8.8