Quantum GIS API Documentation
1.8
|
When drawing a vector layer with rule-based renderer, it goes through the rules and draws features with symbols from rules that match. More...
#include <qgsrulebasedrendererv2.h>
Classes | |
struct | FeatureToRender |
struct | RenderJob |
struct | RenderLevel |
class | Rule |
This class keeps data about a rules for rule-based renderer. More... | |
Public Types | |
enum | FeatureFlags { FeatIsSelected = 1, FeatDrawMarkers = 2 } |
typedef QList< RenderLevel > | RenderQueue |
typedef QList< Rule * > | RuleList |
Public Member Functions | |
QgsRuleBasedRendererV2 (QgsRuleBasedRendererV2::Rule *root) | |
Constructs the renderer from given tree of rules (takes ownership) | |
QgsRuleBasedRendererV2 (QgsSymbolV2 *defaultSymbol) | |
Constructor for convenience. Creates a root rule and adds a default rule with symbol (takes ownership) | |
~QgsRuleBasedRendererV2 () | |
virtual QgsSymbolV2 * | symbolForFeature (QgsFeature &feature) |
return symbol for current feature. Should not be used individually: there could be more symbols for a feature | |
virtual bool | renderFeature (QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false) |
virtual void | startRender (QgsRenderContext &context, const QgsVectorLayer *vlayer) |
virtual void | stopRender (QgsRenderContext &context) |
virtual QList< QString > | usedAttributes () |
virtual QgsFeatureRendererV2 * | clone () |
virtual void | toSld (QDomDocument &doc, QDomElement &element) const |
used from subclasses to create SLD Rule elements following SLD v1.1 specs | |
virtual QgsSymbolV2List | symbols () |
for symbol levels | |
virtual QDomElement | save (QDomDocument &doc) |
store renderer info to XML element | |
virtual QgsLegendSymbologyList | legendSymbologyItems (QSize iconSize) |
return a list of symbology items for the legend | |
virtual QgsLegendSymbolList | legendSymbolItems () |
return a list of item text / symbol | |
virtual QString | dump () |
for debugging | |
virtual bool | willRenderFeature (QgsFeature &feat) |
return whether the renderer will render a feature or not. | |
virtual QgsSymbolV2List | symbolsForFeature (QgsFeature &feat) |
return list of symbols used for rendering the feature. | |
virtual int | capabilities () |
returns bitwise OR-ed capabilities of the renderer | |
Rule * | rootRule () |
Static Public Member Functions | |
static QgsFeatureRendererV2 * | create (QDomElement &element) |
static QgsFeatureRendererV2 * | createFromSld (QDomElement &element, QGis::GeometryType geomType) |
static void | refineRuleCategories (Rule *initialRule, QgsCategorizedSymbolRendererV2 *r) |
take a rule and create a list of new rules based on the categories from categorized symbol renderer | |
static void | refineRuleRanges (Rule *initialRule, QgsGraduatedSymbolRendererV2 *r) |
take a rule and create a list of new rules based on the ranges from graduated symbol renderer | |
static void | refineRuleScales (Rule *initialRule, QList< int > scales) |
take a rule and create a list of new rules with intervals of scales given by the passed scale denominators | |
Protected Attributes | |
Rule * | mRootRule |
the root node with hierarchical list of rules | |
RenderQueue | mRenderQueue |
QList< FeatureToRender > | mCurrentFeatures |
When drawing a vector layer with rule-based renderer, it goes through the rules and draws features with symbols from rules that match.
Definition at line 34 of file qgsrulebasedrendererv2.h.
typedef QList<RenderLevel> QgsRuleBasedRendererV2::RenderQueue |
Definition at line 71 of file qgsrulebasedrendererv2.h.
typedef QList<Rule*> QgsRuleBasedRendererV2::RuleList |
Definition at line 73 of file qgsrulebasedrendererv2.h.
Definition at line 41 of file qgsrulebasedrendererv2.h.
Constructs the renderer from given tree of rules (takes ownership)
Definition at line 578 of file qgsrulebasedrendererv2.cpp.
Referenced by clone(), create(), and createFromSld().
QgsRuleBasedRendererV2::QgsRuleBasedRendererV2 | ( | QgsSymbolV2 * | defaultSymbol | ) |
Constructor for convenience. Creates a root rule and adds a default rule with symbol (takes ownership)
Definition at line 583 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::appendChild(), and mRootRule.
Definition at line 590 of file qgsrulebasedrendererv2.cpp.
References mRootRule.
virtual int QgsRuleBasedRendererV2::capabilities | ( | ) | [inline, virtual] |
returns bitwise OR-ed capabilities of the renderer
Reimplemented from QgsFeatureRendererV2.
Definition at line 236 of file qgsrulebasedrendererv2.h.
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::clone | ( | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 688 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::clone(), mRootRule, QgsRuleBasedRendererV2(), QgsFeatureRendererV2::setUsingSymbolLevels(), and QgsFeatureRendererV2::usingSymbolLevels().
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::create | ( | QDomElement & | element | ) | [static] |
Definition at line 745 of file qgsrulebasedrendererv2.cpp.
References QgsSymbolLayerV2Utils::clearSymbolMap(), QgsRuleBasedRendererV2::Rule::create(), QgsSymbolLayerV2Utils::loadSymbols(), and QgsRuleBasedRendererV2().
Referenced by QgsRuleBasedRendererV2::Rule::create(), and QgsRendererV2Registry::QgsRendererV2Registry().
QgsFeatureRendererV2 * QgsRuleBasedRendererV2::createFromSld | ( | QDomElement & | element, |
QGis::GeometryType | geomType | ||
) | [static] |
Definition at line 768 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::appendChild(), QgsRuleBasedRendererV2::Rule::createFromSld(), and QgsRuleBasedRendererV2().
Referenced by QgsRendererV2Registry::QgsRendererV2Registry().
QString QgsRuleBasedRendererV2::dump | ( | ) | [virtual] |
for debugging
Reimplemented from QgsFeatureRendererV2.
Definition at line 857 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::dump(), and mRootRule.
QgsLegendSymbolList QgsRuleBasedRendererV2::legendSymbolItems | ( | ) | [virtual] |
return a list of item text / symbol
Reimplemented from QgsFeatureRendererV2.
Definition at line 739 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::legendSymbolItems(), and mRootRule.
Referenced by legendSymbologyItems().
QgsLegendSymbologyList QgsRuleBasedRendererV2::legendSymbologyItems | ( | QSize | iconSize | ) | [virtual] |
return a list of symbology items for the legend
Reimplemented from QgsFeatureRendererV2.
Definition at line 726 of file qgsrulebasedrendererv2.cpp.
References legendSymbolItems(), and QgsSymbolLayerV2Utils::symbolPreviewPixmap().
void QgsRuleBasedRendererV2::refineRuleCategories | ( | QgsRuleBasedRendererV2::Rule * | initialRule, |
QgsCategorizedSymbolRendererV2 * | r | ||
) | [static] |
take a rule and create a list of new rules based on the categories from categorized symbol renderer
Definition at line 802 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::appendChild(), QgsCategorizedSymbolRendererV2::categories(), QgsCategorizedSymbolRendererV2::classAttribute(), QgsSymbolV2::clone(), QgsExpression::quotedColumnRef(), QgsExpression::quotedString(), QgsRendererCategoryV2::symbol(), and QgsRendererCategoryV2::value().
void QgsRuleBasedRendererV2::refineRuleRanges | ( | QgsRuleBasedRendererV2::Rule * | initialRule, |
QgsGraduatedSymbolRendererV2 * | r | ||
) | [static] |
take a rule and create a list of new rules based on the ranges from graduated symbol renderer
Definition at line 823 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::appendChild(), QgsGraduatedSymbolRendererV2::classAttribute(), QgsSymbolV2::clone(), QgsRendererRangeV2::lowerValue(), QgsExpression::quotedColumnRef(), QgsGraduatedSymbolRendererV2::ranges(), QgsRendererRangeV2::symbol(), and QgsRendererRangeV2::upperValue().
void QgsRuleBasedRendererV2::refineRuleScales | ( | QgsRuleBasedRendererV2::Rule * | initialRule, |
QList< int > | scales | ||
) | [static] |
take a rule and create a list of new rules with intervals of scales given by the passed scale denominators
Definition at line 838 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::appendChild(), QgsSymbolV2::clone(), QgsRuleBasedRendererV2::Rule::scaleMaxDenom(), QgsRuleBasedRendererV2::Rule::scaleMinDenom(), and QgsRuleBasedRendererV2::Rule::symbol().
bool QgsRuleBasedRendererV2::renderFeature | ( | QgsFeature & | feature, |
QgsRenderContext & | context, | ||
int | layer = -1 , |
||
bool | selected = false , |
||
bool | drawVertexMarker = false |
||
) | [virtual] |
Reimplemented from QgsFeatureRendererV2.
Definition at line 602 of file qgsrulebasedrendererv2.cpp.
References FeatDrawMarkers, FeatIsSelected, mCurrentFeatures, mRenderQueue, mRootRule, and QgsRuleBasedRendererV2::Rule::renderFeature().
Rule* QgsRuleBasedRendererV2::rootRule | ( | ) | [inline] |
Definition at line 240 of file qgsrulebasedrendererv2.h.
QDomElement QgsRuleBasedRendererV2::save | ( | QDomDocument & | doc | ) | [virtual] |
store renderer info to XML element
Reimplemented from QgsFeatureRendererV2.
Definition at line 708 of file qgsrulebasedrendererv2.cpp.
References mRootRule, QgsFeatureRendererV2::mUsingSymbolLevels, RENDERER_TAG_NAME, QgsRuleBasedRendererV2::Rule::save(), QgsSymbolLayerV2Utils::saveSymbols(), and symbols().
void QgsRuleBasedRendererV2::startRender | ( | QgsRenderContext & | context, |
const QgsVectorLayer * | vlayer | ||
) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 618 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::Rule::collectZLevels(), mRenderQueue, mRootRule, QgsDebugMsg, QgsRuleBasedRendererV2::Rule::setNormZLevels(), and QgsRuleBasedRendererV2::Rule::startRender().
void QgsRuleBasedRendererV2::stopRender | ( | QgsRenderContext & | context | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 641 of file qgsrulebasedrendererv2.cpp.
References QgsRuleBasedRendererV2::FeatureToRender::feat, FeatDrawMarkers, FeatIsSelected, QgsRuleBasedRendererV2::FeatureToRender::flags, QgsRuleBasedRendererV2::RenderJob::ftr, QgsRuleBasedRendererV2::RenderLevel::jobs, mCurrentFeatures, mRenderQueue, mRootRule, QgsFeatureRendererV2::renderFeatureWithSymbol(), QgsSymbolLayerV2::renderingPass(), QgsRuleBasedRendererV2::Rule::stopRender(), QgsRuleBasedRendererV2::RenderJob::symbol, QgsSymbolV2::symbolLayer(), QgsSymbolV2::symbolLayerCount(), and QgsRuleBasedRendererV2::RenderLevel::zIndex.
QgsSymbolV2 * QgsRuleBasedRendererV2::symbolForFeature | ( | QgsFeature & | feature | ) | [virtual] |
return symbol for current feature. Should not be used individually: there could be more symbols for a feature
Implements QgsFeatureRendererV2.
Definition at line 596 of file qgsrulebasedrendererv2.cpp.
QgsSymbolV2List QgsRuleBasedRendererV2::symbols | ( | ) | [virtual] |
for symbol levels
Implements QgsFeatureRendererV2.
Definition at line 703 of file qgsrulebasedrendererv2.cpp.
References mRootRule, and QgsRuleBasedRendererV2::Rule::symbols().
Referenced by save(), and QgsRuleBasedRendererV2::Rule::toSld().
QgsSymbolV2List QgsRuleBasedRendererV2::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 from QgsFeatureRendererV2.
Definition at line 869 of file qgsrulebasedrendererv2.cpp.
References mRootRule, and QgsRuleBasedRendererV2::Rule::symbolsForFeature().
void QgsRuleBasedRendererV2::toSld | ( | QDomDocument & | doc, |
QDomElement & | element | ||
) | const [virtual] |
used from subclasses to create SLD Rule elements following SLD v1.1 specs
Reimplemented from QgsFeatureRendererV2.
Definition at line 697 of file qgsrulebasedrendererv2.cpp.
References mRootRule, and QgsRuleBasedRendererV2::Rule::toSld().
QList< QString > QgsRuleBasedRendererV2::usedAttributes | ( | ) | [virtual] |
Implements QgsFeatureRendererV2.
Definition at line 682 of file qgsrulebasedrendererv2.cpp.
References mRootRule, and QgsRuleBasedRendererV2::Rule::usedAttributes().
bool QgsRuleBasedRendererV2::willRenderFeature | ( | QgsFeature & | feat | ) | [virtual] |
return whether the renderer will render a feature or not.
Must be called between startRender() and stopRender() calls.
Reimplemented from QgsFeatureRendererV2.
Definition at line 864 of file qgsrulebasedrendererv2.cpp.
References mRootRule, and QgsRuleBasedRendererV2::Rule::willRenderFeature().
QList<FeatureToRender> QgsRuleBasedRendererV2::mCurrentFeatures [protected] |
Definition at line 257 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), and stopRender().
RenderQueue QgsRuleBasedRendererV2::mRenderQueue [protected] |
Definition at line 256 of file qgsrulebasedrendererv2.h.
Referenced by renderFeature(), startRender(), and stopRender().
Rule* QgsRuleBasedRendererV2::mRootRule [protected] |
the root node with hierarchical list of rules
Definition at line 253 of file qgsrulebasedrendererv2.h.
Referenced by clone(), dump(), legendSymbolItems(), QgsRuleBasedRendererV2(), renderFeature(), save(), startRender(), stopRender(), symbols(), symbolsForFeature(), toSld(), usedAttributes(), willRenderFeature(), and ~QgsRuleBasedRendererV2().