QGIS API Documentation
2.14.0-Essen
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
119
120
#endif // QGSVECTORLAYERLABELPROVIDER_H
QgsVectorLayerLabelProvider::mRenderer
QgsFeatureRendererV2 * mRenderer
Definition:
qgsvectorlayerlabelprovider.h:102
QGis::GeometryType
GeometryType
Definition:
qgis.h:111
QgsVectorLayerLabelProvider::mOwnsSource
bool mOwnsSource
Whether layer's feature source is owned.
Definition:
qgsvectorlayerlabelprovider.h:113
QgsPalLayerSettings
Definition:
qgspallabeling.h:63
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
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 Sat Feb 27 2016 18:33:25 for QGIS API Documentation by
1.8.11