Class: QgsRuleBasedRenderer¶
Rule based renderer.
When drawing a vector layer with rule-based renderer, it goes through the rules and draws features with symbols from rules that match.
List of all members, including inherited members
Class Hierarchy¶
Base classes¶
Abstract base class for all 2D vector feature renderers. |
Classes
Feature for rendering by a |
|
A |
|
Render level: a list of jobs to be drawn at particular level for a QgsRuleBasedRenderer. |
|
Represents an individual rule for a rule-based renderer. |
Abstract Methods
Returns symbol for current feature. |
Methods
Static Methods
Creates a new |
|
helper function to convert the size scale and rotation fields present in some other renderers to data defined symbology |
|
Creates a new rule-based renderer instance from XML |
|
Creates a new rule based renderer from an SLD XML element. |
|
take a rule and create a list of new rules based on the categories from categorized symbol renderer |
|
take a rule and create a list of new rules based on the ranges from graduated symbol renderer |
|
take a rule and create a list of new rules with intervals of scales given by the passed scale denominators |
Attributes
- class qgis.core.QgsRuleBasedRenderer[source]¶
Bases:
QgsFeatureRenderer- __init__(root: QgsRuleBasedRenderer.Rule | None)
Constructs the renderer from given tree of rules (takes ownership)
- Parameters:
root (Optional[QgsRuleBasedRenderer.Rule])
- __init__(defaultSymbol: QgsSymbol | None)
Constructor for convenience. Creates a root rule and adds a default rule with symbol (takes ownership)
- Parameters:
defaultSymbol (Optional[QgsSymbol])
- FeatDrawMarkers = 2¶
- FeatIsSelected = 1¶
- class FeatureFlags¶
Bases:
int
- class FeatureToRender¶
Bases:
objectFeature for rendering by a
QgsRuleBasedRenderer. Contains aQgsFeatureand some flags.- feat¶
- class RenderJob¶
Bases:
objectA
QgsRuleBasedRendererrendering job, consisting of a feature to be rendered with a particular symbol.- ftr: FeatureToRender¶
- class RenderLevel¶
Bases:
objectRender level: a list of jobs to be drawn at particular level for a QgsRuleBasedRenderer.
- zIndex¶
- class Rule[source]¶
Bases:
objectRepresents an individual rule for a rule-based renderer.
A rule consists of a symbol, filter expression and range of scales. If filter is empty, it matches all features. If scale range has both values zero, it matches all scales. If one of the min/max scale denominators is zero, there is no lower/upper bound for scales. A rule matches if both filter and scale range match.
- __init__(symbol: QgsSymbol | None, maximumScale: int = 0, minimumScale: int = 0, filterExp: str | None = '', label: str | None = '', description: str | None = '', elseRule: bool = False)
Constructor takes ownership of the symbol
- Parameters:
symbol (Optional[QgsSymbol])
maximumScale (int = 0)
minimumScale (int = 0)
filterExp (Optional[str] = '')
label (Optional[str] = '')
description (Optional[str] = '')
elseRule (bool = False)
- Filtered = 0¶
- Inactive = 1¶
- class RenderResult¶
Bases:
int
- Rendered = 2¶
- active(self) bool[source]¶
Returns if this rule is active
- Return type:
bool
- Returns:
Trueif the rule is active
- appendChild(self, rule: QgsRuleBasedRenderer.Rule | None)[source]¶
add child rule, take ownership, sets this as parent
- Parameters:
rule (Optional[QgsRuleBasedRenderer.Rule])
- children(self) list[QgsRuleBasedRenderer.Rule]¶
Returns all children rules of this rule
- Return type:
- Returns:
A list of rules
- static create(ruleElem: QDomElement, symbolMap: Any, reuseId: bool = True) QgsRuleBasedRenderer.Rule | None[source]¶
Create a rule from an XML definition
- Parameters:
ruleElem (QDomElement) – The XML rule element
symbolMap (Any) – Symbol map
reuseId (bool = True) – set to
Trueto create an exact copy of the original symbol orFalseto create a new rule with the same parameters as the original but a new uniqueruleKey(). (Since QGIS 3.30)
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- Returns:
A new rule
- static createFromSld(element: QDomElement, geomType: Qgis.GeometryType) QgsRuleBasedRenderer.Rule | None[source]¶
Create a rule from the SLD provided in element and for the specified geometry type.
- Parameters:
element (QDomElement)
geomType (Qgis.GeometryType)
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- descendants(self) list[QgsRuleBasedRenderer.Rule][source]¶
Returns all children, grand-children, grand-grand-children, grand-gra… you get it
- Return type:
- Returns:
A list of descendant rules
- description(self) str[source]¶
A human readable description for this rule
- Return type:
str
- Returns:
Description
- filterExpression(self) str[source]¶
A filter that will check if this rule applies
- Return type:
str
- Returns:
An expression
- findRuleByKey(self, key: str | None) QgsRuleBasedRenderer.Rule | None[source]¶
Try to find a rule given its unique key
- Parameters:
key (Optional[str])
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- hasActiveChildren(self) bool[source]¶
Returns
Trueif the rule has any active children.Note
Must be called after
startRender()Added in version 3.30.
- Return type:
bool
- insertChild(self, i: int, rule: QgsRuleBasedRenderer.Rule | None)[source]¶
add child rule, take ownership, sets this as parent
- Parameters:
i (int)
rule (Optional[QgsRuleBasedRenderer.Rule])
- isElse(self) bool[source]¶
Check if this rule is an ELSE rule
- Return type:
bool
- Returns:
Trueif this rule is an else rule
- isFilterOK(self, f: QgsFeature, context: QgsRenderContext | None = None) bool[source]¶
Check if a given feature shall be rendered by this rule
- Parameters:
f (QgsFeature) – The feature to test
context (Optional[QgsRenderContext] = None) – The context in which the rendering happens
- Return type:
bool
- Returns:
Trueif the feature shall be rendered
- isScaleOK(self, scale: float) bool[source]¶
Check if this rule applies for a given
scale. Thescalevalue indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. If set to 0, it will always returnTrue.- Return type:
bool
- Returns:
If the rule will be evaluated at this scale
- Parameters:
scale (float)
- maximumScale(self) float[source]¶
Returns the maximum map scale (i.e. most “zoomed in” scale) at which the rule will be active. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no maximum scale visibility.
See also
See also
- Return type:
float
- minimumScale(self) float[source]¶
Returns the minimum map scale (i.e. most “zoomed out” scale) at which the rule will be active. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no minimum scale visibility.
See also
See also
- Return type:
float
- needsGeometry(self) bool[source]¶
Returns
Trueif this rule or one of its children needs the geometry to be applied.- Return type:
bool
- parent(self) QgsRuleBasedRenderer.Rule | None[source]¶
The parent rule
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- Returns:
Parent rule
- removeChild(self, rule: QgsRuleBasedRenderer.Rule | None)[source]¶
delete child rule
- Parameters:
rule (Optional[QgsRuleBasedRenderer.Rule])
- ruleKey(self) str[source]¶
Unique rule identifier (for identification of rule within renderer)
- Return type:
str
- rulesForFeature(self, feature: QgsFeature, context: QgsRenderContext | None = None, onlyActive: bool = True) list[QgsRuleBasedRenderer.Rule][source]¶
Returns the list of rules used to render the feature in a specific context.
- Parameters:
feature (QgsFeature) – The feature for which rules have to be find
context (Optional[QgsRenderContext] = None) – The rendering context
onlyActive (bool = True) –
Trueto search for active rules only,Falseotherwise
- Return type:
- setActive(self, state: bool)[source]¶
Sets if this rule is active
- Parameters:
state (bool) – Determines if the rule should be activated or deactivated
- setDescription(self, description: str | None)[source]¶
Set a human readable description for this rule
- Parameters:
description (Optional[str]) – Description
- setFilterExpression(self, filterExp: str | None)[source]¶
Set the expression used to check if a given feature shall be rendered with this rule
- Parameters:
filterExp (Optional[str]) – An expression
- setIsElse(self, iselse: bool)[source]¶
Sets if this rule is an ELSE rule
- Parameters:
iselse (bool) – If
True, this rule is an ELSE rule
- setMaximumScale(self, scale: float)[source]¶
Sets the maximum map
scale(i.e. most “zoomed in” scale) at which the rule will be active. Thescalevalue indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. Ascaleof 0 indicates no maximum scale visibility.See also
See also
- Parameters:
scale (float)
- setMinimumScale(self, scale: float)[source]¶
Sets the minimum map
scale(i.e. most “zoomed out” scale) at which the rule will be active. Thescalevalue indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. Ascaleof 0 indicates no minimum scale visibility.See also
See also
- Parameters:
scale (float)
- setRuleKey(self, key: str | None)[source]¶
Override the assigned rule key (should be used just internally by rule-based renderer)
- Parameters:
key (Optional[str])
- setSymbol(self, sym: QgsSymbol | None)[source]¶
Sets a new symbol (or
None). Deletes old symbol.- Parameters:
sym (Optional[QgsSymbol])
- takeChild(self, rule: QgsRuleBasedRenderer.Rule | None) QgsRuleBasedRenderer.Rule | None[source]¶
take child rule out, set parent as
None- Parameters:
rule (Optional[QgsRuleBasedRenderer.Rule])
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- takeChildAt(self, i: int) QgsRuleBasedRenderer.Rule | None[source]¶
take child rule out, set parent as
None- Parameters:
i (int)
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- static convertFromRenderer(renderer: QgsFeatureRenderer | None, layer: QgsVectorLayer | None = None) QgsRuleBasedRenderer | None[source]¶
Creates a new
QgsRuleBasedRendererfrom an existingrenderer.Since QGIS 3.20, the optional
layerparameter is required for conversions of some renderer types.- Return type:
Optional[QgsRuleBasedRenderer]
- Returns:
a new renderer if the conversion was possible, otherwise
None.- Parameters:
renderer (Optional[QgsFeatureRenderer])
layer (Optional[QgsVectorLayer] = None)
- static convertToDataDefinedSymbology(symbol: QgsSymbol | None, sizeScaleField: str | None, rotationField: str | None = '')[source]¶
helper function to convert the size scale and rotation fields present in some other renderers to data defined symbology
- Parameters:
symbol (Optional[QgsSymbol])
sizeScaleField (Optional[str])
rotationField (Optional[str] = '')
- static create(element: QDomElement, context: QgsReadWriteContext) QgsFeatureRenderer | None[source]¶
Creates a new rule-based renderer instance from XML
- Parameters:
element (QDomElement)
context (QgsReadWriteContext)
- Return type:
Optional[QgsFeatureRenderer]
- static createFromSld(element: QDomElement, geomType: Qgis.GeometryType) QgsFeatureRenderer | None[source]¶
Creates a new rule based renderer from an SLD XML element.
- Parameters:
element (QDomElement)
geomType (Qgis.GeometryType)
- Return type:
Optional[QgsFeatureRenderer]
- static refineRuleCategories(initialRule: QgsRuleBasedRenderer.Rule | None, r: QgsCategorizedSymbolRenderer | None)[source]¶
take a rule and create a list of new rules based on the categories from categorized symbol renderer
- Parameters:
initialRule (Optional[QgsRuleBasedRenderer.Rule])
r (Optional[QgsCategorizedSymbolRenderer])
- static refineRuleRanges(initialRule: QgsRuleBasedRenderer.Rule | None, r: QgsGraduatedSymbolRenderer | None)[source]¶
take a rule and create a list of new rules based on the ranges from graduated symbol renderer
- Parameters:
initialRule (Optional[QgsRuleBasedRenderer.Rule])
r (Optional[QgsGraduatedSymbolRenderer])
- static refineRuleScales(initialRule: QgsRuleBasedRenderer.Rule | None, scales: Iterable[int])[source]¶
take a rule and create a list of new rules with intervals of scales given by the passed scale denominators
- Parameters:
initialRule (Optional[QgsRuleBasedRenderer.Rule])
scales (Iterable[int])
- rootRule(self) QgsRuleBasedRenderer.Rule | None[source]¶
- Return type:
Optional[QgsRuleBasedRenderer.Rule]
- abstract symbolForFeature(self, feature: QgsFeature, context: QgsRenderContext) QgsSymbol | None[source]¶
Returns symbol for current feature. Should not be used individually: there could be more symbols for a feature
- Parameters:
feature (QgsFeature)
context (QgsRenderContext)
- Return type:
Optional[QgsSymbol]