QGIS API Documentation  2.11.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
QgsFeatureRendererV2 Class Referenceabstract

#include <qgsrendererv2.h>

Inheritance diagram for QgsFeatureRendererV2:
Inheritance graph
[legend]

Public Types

enum  Capabilities {
  SymbolLevels = 1, RotationField = 1 << 1, MoreSymbolsPerFeature = 1 << 2, Filter = 1 << 3,
  ScaleDependent = 1 << 4
}
 

Public Member Functions

virtual ~QgsFeatureRendererV2 ()
 
virtual int capabilities ()
 returns bitwise OR-ed capabilities of the renderer More...
 
virtual void checkLegendSymbolItem (QString key, bool state=true)
 item in symbology was checked More...
 
virtual QgsFeatureRendererV2clone () const =0
 
virtual QString dump () const
 for debugging More...
 
virtual QString filter ()
 If a renderer does not require all the features this method may be overridden and return an expression used as where clause. More...
 
bool forceRasterRender () const
 Returns whether the renderer must render as a raster. More...
 
virtual QString legendClassificationAttribute () const
 If supported by the renderer, return classification attribute for the use in legend. More...
 
virtual bool legendSymbolItemChecked (QString key)
 items of symbology items in legend is checked More...
 
virtual QgsLegendSymbolList legendSymbolItems (double scaleDenominator=-1, QString rule="")
 return a list of item text / symbol More...
 
virtual bool legendSymbolItemsCheckable () const
 items of symbology items in legend should be checkable More...
 
virtual QgsLegendSymbolListV2 legendSymbolItemsV2 () const
 Return a list of symbology items for the legend. More...
 
virtual QgsLegendSymbologyList legendSymbologyItems (QSize iconSize)
 return a list of symbology items for the legend More...
 
virtual void modifyRequestExtent (QgsRectangle &extent, QgsRenderContext &context)
 Allows for a renderer to modify the extent of a feature request prior to rendering. More...
 
virtual QgsSymbolV2originalSymbolForFeature (QgsFeature &feature)
 Return symbol for feature. More...
 
virtual QgsSymbolV2List originalSymbolsForFeature (QgsFeature &feat)
 Equivalent of originalSymbolsForFeature() call extended to support renderers that may use more symbols per feature - similar to symbolsForFeature() More...
 
QgsPaintEffectpaintEffect () const
 Returns the current paint effect for the renderer. More...
 
virtual bool renderFeature (QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false)
 
virtual QString rotationField () const
 return rotation field name (or empty string if not set or not supported by renderer) More...
 
virtual QDomElement save (QDomDocument &doc)
 store renderer info to XML element More...
 
void setForceRasterRender (bool forceRaster)
 Sets whether the renderer should be rendered to a raster destination. More...
 
void setPaintEffect (QgsPaintEffect *effect)
 Sets the current paint effect for the renderer. More...
 
virtual void setRotationField (QString fieldName)
 sets rotation field of renderer (if supported by the renderer) More...
 
void setUsingSymbolLevels (bool usingSymbolLevels)
 
void setVertexMarkerAppearance (int type, int size)
 set type and size of editing vertex markers for subsequent rendering More...
 
virtual void startRender (QgsRenderContext &context, const QgsFields &fields)=0
 Needs to be called when a new render cycle is started. More...
 
virtual Q_DECL_DEPRECATED void startRender (QgsRenderContext &context, const QgsVectorLayer *vlayer)
 
virtual void stopRender (QgsRenderContext &context)=0
 
virtual QgsSymbolV2symbolForFeature (QgsFeature &feature)=0
 To be overridden. More...
 
virtual QgsSymbolV2List symbols ()=0
 for symbol levels More...
 
virtual QgsSymbolV2List symbolsForFeature (QgsFeature &feat)
 return list of symbols used for rendering the feature. More...
 
virtual void toSld (QDomDocument &doc, QDomElement &element) const
 used from subclasses to create SLD Rule elements following SLD v1.1 specs More...
 
QString type () const
 
virtual QList< QStringusedAttributes ()=0
 
bool usingSymbolLevels () const
 
virtual bool willRenderFeature (QgsFeature &feat)
 return whether the renderer will render a feature or not. More...
 
virtual Q_DECL_DEPRECATED
QDomElement 
writeSld (QDomDocument &doc, const QgsVectorLayer &layer) const
 create the SLD UserStyle element following the SLD v1.1 specs More...
 
virtual QDomElement writeSld (QDomDocument &doc, const QString &styleName) const
 create the SLD UserStyle element following the SLD v1.1 specs with the given name More...
 

Static Public Member Functions

static QgsFeatureRendererV2defaultRenderer (QGis::GeometryType geomType)
 return a new renderer - used by default in vector layers More...
 
static QgsFeatureRendererV2load (QDomElement &symbologyElem)
 create a renderer from XML element More...
 
static QgsFeatureRendererV2loadSld (const QDomNode &node, QGis::GeometryType geomType, QString &errorMessage)
 Create a new renderer according to the information contained in the UserStyle element of a SLD style document. More...
 

Protected Member Functions

 QgsFeatureRendererV2 (QString type)
 
void copyPaintEffect (QgsFeatureRendererV2 *destRenderer) const
 Copies paint effect of this renderer to another renderer. More...
 
void renderFeatureWithSymbol (QgsFeature &feature, QgsSymbolV2 *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker)
 
void renderVertexMarker (QPointF &pt, QgsRenderContext &context)
 render editing vertex marker at specified point More...
 
void renderVertexMarkerPolygon (QPolygonF &pts, QList< QPolygonF > *rings, QgsRenderContext &context)
 render editing vertex marker for a polygon More...
 
void renderVertexMarkerPolyline (QPolygonF &pts, QgsRenderContext &context)
 render editing vertex marker for a polyline More...
 
void setScaleMethodToSymbol (QgsSymbolV2 *symbol, int scaleMethod)
 

Static Protected Member Functions

static const unsigned char * _getLineString (QPolygonF &pts, QgsRenderContext &context, const unsigned char *wkb, bool clipToExtent=true)
 
static const unsigned char * _getPoint (QPointF &pt, QgsRenderContext &context, const unsigned char *wkb)
 
static const unsigned char * _getPolygon (QPolygonF &pts, QList< QPolygonF > &holes, QgsRenderContext &context, const unsigned char *wkb, bool clipToExtent=true)
 
static void convertSymbolRotation (QgsSymbolV2 *symbol, const QString &field)
 
static void convertSymbolSizeScale (QgsSymbolV2 *symbol, QgsSymbolV2::ScaleMethod method, const QString &field)
 

Protected Attributes

int mCurrentVertexMarkerSize
 The current size of editing marker. More...
 
int mCurrentVertexMarkerType
 The current type of editing marker. More...
 
bool mForceRaster
 
QgsPaintEffectmPaintEffect
 
QString mType
 
bool mUsingSymbolLevels
 

Detailed Description

Definition at line 74 of file qgsrendererv2.h.

Member Enumeration Documentation

Enumerator
SymbolLevels 
RotationField 
MoreSymbolsPerFeature 
Filter 
ScaleDependent 

Definition at line 136 of file qgsrendererv2.h.

Constructor & Destructor Documentation

QgsFeatureRendererV2::~QgsFeatureRendererV2 ( )
virtual

Definition at line 224 of file qgsrendererv2.cpp.

QgsFeatureRendererV2::QgsFeatureRendererV2 ( QString  type)
protected

Definition at line 212 of file qgsrendererv2.cpp.

Member Function Documentation

const unsigned char * QgsFeatureRendererV2::_getLineString ( QPolygonF pts,
QgsRenderContext context,
const unsigned char *  wkb,
bool  clipToExtent = true 
)
staticprotected

Definition at line 63 of file qgsrendererv2.cpp.

const unsigned char * QgsFeatureRendererV2::_getPoint ( QPointF pt,
QgsRenderContext context,
const unsigned char *  wkb 
)
staticprotected

Definition at line 43 of file qgsrendererv2.cpp.

const unsigned char * QgsFeatureRendererV2::_getPolygon ( QPolygonF pts,
QList< QPolygonF > &  holes,
QgsRenderContext context,
const unsigned char *  wkb,
bool  clipToExtent = true 
)
staticprotected

Definition at line 117 of file qgsrendererv2.cpp.

virtual int QgsFeatureRendererV2::capabilities ( )
inlinevirtual
void QgsFeatureRendererV2::checkLegendSymbolItem ( QString  key,
bool  state = true 
)
virtual

item in symbology was checked

Note
added in 2.5

Reimplemented in QgsGraduatedSymbolRendererV2, QgsRuleBasedRendererV2, and QgsCategorizedSymbolRendererV2.

Definition at line 586 of file qgsrendererv2.cpp.

virtual QgsFeatureRendererV2* QgsFeatureRendererV2::clone ( ) const
pure virtual
void QgsFeatureRendererV2::convertSymbolRotation ( QgsSymbolV2 symbol,
const QString field 
)
staticprotected
Note
this function is used to convert old rotations expresssions to symbol level DataDefined angle

Definition at line 697 of file qgsrendererv2.cpp.

void QgsFeatureRendererV2::convertSymbolSizeScale ( QgsSymbolV2 symbol,
QgsSymbolV2::ScaleMethod  method,
const QString field 
)
staticprotected
Note
this function is used to convert old sizeScale expresssions to symbol level DataDefined size

Definition at line 672 of file qgsrendererv2.cpp.

void QgsFeatureRendererV2::copyPaintEffect ( QgsFeatureRendererV2 destRenderer) const
protected

Copies paint effect of this renderer to another renderer.

Parameters
destRendererdestination renderer for copied effect

Definition at line 203 of file qgsrendererv2.cpp.

QgsFeatureRendererV2 * QgsFeatureRendererV2::defaultRenderer ( QGis::GeometryType  geomType)
static

return a new renderer - used by default in vector layers

Definition at line 229 of file qgsrendererv2.cpp.

QString QgsFeatureRendererV2::dump ( ) const
virtual
virtual QString QgsFeatureRendererV2::filter ( )
inlinevirtual

If a renderer does not require all the features this method may be overridden and return an expression used as where clause.

This will be called once after startRender() and before the first call to renderFeature(). By default this returns a null string and all features will be requested. You do not need to specify the extent in here, this is taken care of separately and will be combined with a filter returned from this method.

Returns
An expresion used as where clause

Reimplemented in QgsRuleBasedRendererV2.

Definition at line 123 of file qgsrendererv2.h.

bool QgsFeatureRendererV2::forceRasterRender ( ) const
inline

Returns whether the renderer must render as a raster.

Note
added in QGIS 2.12
See also
setForceRasterRender

Definition at line 260 of file qgsrendererv2.h.

virtual QString QgsFeatureRendererV2::legendClassificationAttribute ( ) const
inlinevirtual

If supported by the renderer, return classification attribute for the use in legend.

Note
added in 2.6

Reimplemented in QgsGraduatedSymbolRendererV2, and QgsCategorizedSymbolRendererV2.

Definition at line 209 of file qgsrendererv2.h.

bool QgsFeatureRendererV2::legendSymbolItemChecked ( QString  key)
virtual

items of symbology items in legend is checked

Note
added in 2.5

Reimplemented in QgsGraduatedSymbolRendererV2, QgsRuleBasedRendererV2, and QgsCategorizedSymbolRendererV2.

Definition at line 580 of file qgsrendererv2.cpp.

QgsLegendSymbolList QgsFeatureRendererV2::legendSymbolItems ( double  scaleDenominator = -1,
QString  rule = "" 
)
virtual

return a list of item text / symbol

Note
not available in python bindings

Reimplemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, QgsInvertedPolygonRenderer, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.

Definition at line 592 of file qgsrendererv2.cpp.

bool QgsFeatureRendererV2::legendSymbolItemsCheckable ( ) const
virtual

items of symbology items in legend should be checkable

Note
added in 2.5

Reimplemented in QgsGraduatedSymbolRendererV2, QgsRuleBasedRendererV2, and QgsCategorizedSymbolRendererV2.

Definition at line 575 of file qgsrendererv2.cpp.

QgsLegendSymbolListV2 QgsFeatureRendererV2::legendSymbolItemsV2 ( ) const
virtual

Return a list of symbology items for the legend.

Better choice than legendSymbolItems(). Default fallback implementation just uses legendSymbolItems() implementation

Note
added in 2.6

Reimplemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, and QgsSingleSymbolRendererV2.

Definition at line 599 of file qgsrendererv2.cpp.

QgsLegendSymbologyList QgsFeatureRendererV2::legendSymbologyItems ( QSize  iconSize)
virtual
QgsFeatureRendererV2 * QgsFeatureRendererV2::load ( QDomElement symbologyElem)
static

create a renderer from XML element

Definition at line 417 of file qgsrendererv2.cpp.

QgsFeatureRendererV2 * QgsFeatureRendererV2::loadSld ( const QDomNode node,
QGis::GeometryType  geomType,
QString errorMessage 
)
static

Create a new renderer according to the information contained in the UserStyle element of a SLD style document.

Parameters
nodethe node in the SLD document whose the UserStyle element is a child
geomTypethe geometry type of the features, used to convert Symbolizer elements
errorMessageit will contain the error message if something went wrong
Returns
the renderer

Definition at line 459 of file qgsrendererv2.cpp.

virtual void QgsFeatureRendererV2::modifyRequestExtent ( QgsRectangle extent,
QgsRenderContext context 
)
inlinevirtual

Allows for a renderer to modify the extent of a feature request prior to rendering.

Parameters
extentreference to request's filter extent. Modify extent to change the extent of feature request
contextrender context
Note
added in QGIS 2.7

Reimplemented in QgsHeatmapRenderer.

Definition at line 240 of file qgsrendererv2.h.

virtual QgsSymbolV2* QgsFeatureRendererV2::originalSymbolForFeature ( QgsFeature feature)
inlinevirtual

Return symbol for feature.

The difference compared to symbolForFeature() is that it returns original symbol which can be used as an identifier for renderer's rule - the former may return a temporary replacement of a symbol for use in rendering.

Note
added in 2.6

Reimplemented in QgsGraduatedSymbolRendererV2, QgsInvertedPolygonRenderer, QgsCategorizedSymbolRendererV2, QgsPointDisplacementRenderer, and QgsSingleSymbolRendererV2.

Definition at line 96 of file qgsrendererv2.h.

QgsSymbolV2List QgsFeatureRendererV2::originalSymbolsForFeature ( QgsFeature feat)
virtual

Equivalent of originalSymbolsForFeature() call extended to support renderers that may use more symbols per feature - similar to symbolsForFeature()

Note
added in 2.6

Reimplemented in QgsRuleBasedRendererV2, QgsInvertedPolygonRenderer, and QgsPointDisplacementRenderer.

Definition at line 653 of file qgsrendererv2.cpp.

QgsPaintEffect * QgsFeatureRendererV2::paintEffect ( ) const

Returns the current paint effect for the renderer.

Returns
paint effect
Note
added in QGIS 2.9
See also
setPaintEffect

Definition at line 661 of file qgsrendererv2.cpp.

bool QgsFeatureRendererV2::renderFeature ( QgsFeature feature,
QgsRenderContext context,
int  layer = -1,
bool  selected = false,
bool  drawVertexMarker = false 
)
virtual
void QgsFeatureRendererV2::renderFeatureWithSymbol ( QgsFeature feature,
QgsSymbolV2 symbol,
QgsRenderContext context,
int  layer,
bool  selected,
bool  drawVertexMarker 
)
protected

Definition at line 249 of file qgsrendererv2.cpp.

void QgsFeatureRendererV2::renderVertexMarker ( QPointF pt,
QgsRenderContext context 
)
protected

render editing vertex marker at specified point

Definition at line 617 of file qgsrendererv2.cpp.

void QgsFeatureRendererV2::renderVertexMarkerPolygon ( QPolygonF pts,
QList< QPolygonF > *  rings,
QgsRenderContext context 
)
protected

render editing vertex marker for a polygon

Definition at line 630 of file qgsrendererv2.cpp.

void QgsFeatureRendererV2::renderVertexMarkerPolyline ( QPolygonF pts,
QgsRenderContext context 
)
protected

render editing vertex marker for a polyline

Definition at line 624 of file qgsrendererv2.cpp.

virtual QString QgsFeatureRendererV2::rotationField ( ) const
inlinevirtual

return rotation field name (or empty string if not set or not supported by renderer)

Reimplemented in QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, and QgsSingleSymbolRendererV2.

Definition at line 215 of file qgsrendererv2.h.

QDomElement QgsFeatureRendererV2::save ( QDomDocument doc)
virtual
void QgsFeatureRendererV2::setForceRasterRender ( bool  forceRaster)
inline

Sets whether the renderer should be rendered to a raster destination.

Parameters
forceRasterset to true if renderer must be drawn on a raster surface. This may be desirable for highly detailed layers where rendering as a vector would result in a large, complex vector output.
See also
forceRasterRender
Note
added in QGIS 2.12

Definition at line 269 of file qgsrendererv2.h.

void QgsFeatureRendererV2::setPaintEffect ( QgsPaintEffect effect)

Sets the current paint effect for the renderer.

Parameters
effectpaint effect. Ownership is transferred to the renderer.
Note
added in QGIS 2.9
See also
paintEffect

Definition at line 666 of file qgsrendererv2.cpp.

virtual void QgsFeatureRendererV2::setRotationField ( QString  fieldName)
inlinevirtual

sets rotation field of renderer (if supported by the renderer)

Reimplemented in QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, and QgsSingleSymbolRendererV2.

Definition at line 217 of file qgsrendererv2.h.

void QgsFeatureRendererV2::setScaleMethodToSymbol ( QgsSymbolV2 symbol,
int  scaleMethod 
)
protected

Definition at line 188 of file qgsrendererv2.cpp.

void QgsFeatureRendererV2::setUsingSymbolLevels ( bool  usingSymbolLevels)
inline

Definition at line 152 of file qgsrendererv2.h.

void QgsFeatureRendererV2::setVertexMarkerAppearance ( int  type,
int  size 
)

set type and size of editing vertex markers for subsequent rendering

Definition at line 611 of file qgsrendererv2.cpp.

virtual void QgsFeatureRendererV2::startRender ( QgsRenderContext context,
const QgsFields fields 
)
pure virtual

Needs to be called when a new render cycle is started.

Parameters
contextAdditional information passed to the renderer about the job which will be rendered
fieldsThe fields available for rendering
Returns
Information passed back from the renderer that can e.g. be used to reduce the amount of requested features

Implemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, QgsPointDisplacementRenderer, QgsInvertedPolygonRenderer, QgsHeatmapRenderer, and QgsSingleSymbolRendererV2.

void QgsFeatureRendererV2::startRender ( QgsRenderContext context,
const QgsVectorLayer vlayer 
)
virtual
Deprecated:
since 2.4 - not using QgsVectorLayer directly anymore

Definition at line 234 of file qgsrendererv2.cpp.

virtual void QgsFeatureRendererV2::stopRender ( QgsRenderContext context)
pure virtual
virtual QgsSymbolV2* QgsFeatureRendererV2::symbolForFeature ( QgsFeature feature)
pure virtual

To be overridden.

Parameters
featurefeature
Returns
returns pointer to symbol or 0 if symbol was not found

Implemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsInvertedPolygonRenderer, QgsCategorizedSymbolRendererV2, QgsPointDisplacementRenderer, QgsHeatmapRenderer, and QgsSingleSymbolRendererV2.

virtual QgsSymbolV2List QgsFeatureRendererV2::symbols ( )
pure virtual
QgsSymbolV2List QgsFeatureRendererV2::symbolsForFeature ( QgsFeature feat)
virtual

return list of symbols used for rendering the feature.

For renderers that do not support MoreSymbolsPerFeature it is more efficient to use symbolForFeature()

Reimplemented in QgsRuleBasedRendererV2, QgsInvertedPolygonRenderer, and QgsPointDisplacementRenderer.

Definition at line 645 of file qgsrendererv2.cpp.

virtual void QgsFeatureRendererV2::toSld ( QDomDocument doc,
QDomElement element 
) const
inlinevirtual

used from subclasses to create SLD Rule elements following SLD v1.1 specs

Reimplemented in QgsRuleBasedRendererV2, QgsGraduatedSymbolRendererV2, QgsCategorizedSymbolRendererV2, QgsSingleSymbolRendererV2, and QgsPointDisplacementRenderer.

Definition at line 180 of file qgsrendererv2.h.

QString QgsFeatureRendererV2::type ( ) const
inline

Definition at line 82 of file qgsrendererv2.h.

virtual QList<QString> QgsFeatureRendererV2::usedAttributes ( )
pure virtual
bool QgsFeatureRendererV2::usingSymbolLevels ( ) const
inline

Definition at line 151 of file qgsrendererv2.h.

virtual bool QgsFeatureRendererV2::willRenderFeature ( QgsFeature feat)
inlinevirtual

return whether the renderer will render a feature or not.

Must be called between startRender() and stopRender() calls. Default implementation uses symbolForFeature().

Reimplemented in QgsRuleBasedRendererV2, QgsInvertedPolygonRenderer, and QgsPointDisplacementRenderer.

Definition at line 222 of file qgsrendererv2.h.

QDomElement QgsFeatureRendererV2::writeSld ( QDomDocument doc,
const QgsVectorLayer layer 
) const
virtual

create the SLD UserStyle element following the SLD v1.1 specs

Deprecated:
since 2.8 - use the other override with styleName

Definition at line 548 of file qgsrendererv2.cpp.

QDomElement QgsFeatureRendererV2::writeSld ( QDomDocument doc,
const QString styleName 
) const
virtual

create the SLD UserStyle element following the SLD v1.1 specs with the given name

Note
added in 2.8

Definition at line 553 of file qgsrendererv2.cpp.

Member Data Documentation

int QgsFeatureRendererV2::mCurrentVertexMarkerSize
protected

The current size of editing marker.

Definition at line 306 of file qgsrendererv2.h.

int QgsFeatureRendererV2::mCurrentVertexMarkerType
protected

The current type of editing marker.

Definition at line 304 of file qgsrendererv2.h.

bool QgsFeatureRendererV2::mForceRaster
protected

Definition at line 310 of file qgsrendererv2.h.

QgsPaintEffect* QgsFeatureRendererV2::mPaintEffect
protected

Definition at line 308 of file qgsrendererv2.h.

QString QgsFeatureRendererV2::mType
protected

Definition at line 299 of file qgsrendererv2.h.

bool QgsFeatureRendererV2::mUsingSymbolLevels
protected

Definition at line 301 of file qgsrendererv2.h.


The documentation for this class was generated from the following files: