QGIS API Documentation
3.18.1-Zürich (202f1bf7e5)
|
#include <qgsrenderer.h>
Public Types | |
enum | Capability { SymbolLevels = 1 , MoreSymbolsPerFeature = 1 << 2 , Filter = 1 << 3 , ScaleDependent = 1 << 4 } |
Used to specify details about a renderer. More... | |
Public Member Functions | |
virtual | ~QgsFeatureRenderer () |
virtual bool | accept (QgsStyleEntityVisitorInterface *visitor) const |
Accepts the specified symbology visitor, causing it to visit all symbols associated with the renderer. More... | |
virtual QgsFeatureRenderer::Capabilities | capabilities () |
Returns details about internals of this renderer. More... | |
virtual void | checkLegendSymbolItem (const QString &key, bool state=true) |
item in symbology was checked More... | |
virtual QgsFeatureRenderer * | clone () const =0 |
Create a deep copy of this renderer. More... | |
virtual QString | dump () const |
Returns debug information about this renderer. More... | |
virtual const QgsFeatureRenderer * | embeddedRenderer () const |
Returns the current embedded renderer (subrenderer) for this feature renderer. More... | |
virtual QString | filter (const QgsFields &fields=QgsFields()) |
If a renderer does not require all the features this method may be overridden and return an expression used as where clause. More... | |
virtual bool | filterNeedsGeometry () const |
Returns true if this renderer requires the geometry to apply the filter. 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 QSet< QString > | legendKeysForFeature (const QgsFeature &feature, QgsRenderContext &context) const |
Returns legend keys matching a specified feature. More... | |
virtual bool | legendSymbolItemChecked (const QString &key) |
items of symbology items in legend is checked More... | |
virtual QgsLegendSymbolList | legendSymbolItems () const |
Returns a list of symbology items for the legend. More... | |
virtual bool | legendSymbolItemsCheckable () const |
items of symbology items in legend should be checkable More... | |
virtual void | modifyRequestExtent (QgsRectangle &extent, QgsRenderContext &context) |
Allows for a renderer to modify the extent of a feature request prior to rendering. More... | |
QgsFeatureRequest::OrderBy | orderBy () const |
Gets the order in which features shall be processed by this renderer. More... | |
bool | orderByEnabled () const |
Returns whether custom ordering will be applied before features are processed by this renderer. More... | |
virtual QgsSymbol * | originalSymbolForFeature (const QgsFeature &feature, QgsRenderContext &context) const |
Returns symbol for feature. More... | |
virtual QgsSymbolList | originalSymbolsForFeature (const QgsFeature &feature, QgsRenderContext &context) const |
Equivalent of originalSymbolsForFeature() call extended to support renderers that may use more symbols per feature - similar to symbolsForFeature() More... | |
QgsPaintEffect * | paintEffect () const |
Returns the current paint effect for the renderer. More... | |
virtual bool | renderFeature (const QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false) SIP_THROW(QgsCsException) |
Render a feature using this renderer in the given context. More... | |
virtual QDomElement | save (QDomDocument &doc, const QgsReadWriteContext &context) |
store renderer info to XML element More... | |
virtual void | setEmbeddedRenderer (QgsFeatureRenderer *subRenderer) |
Sets an embedded renderer (subrenderer) for this feature renderer. More... | |
void | setForceRasterRender (bool forceRaster) |
Sets whether the renderer should be rendered to a raster destination. More... | |
virtual void | setLegendSymbolItem (const QString &key, QgsSymbol *symbol) |
Sets the symbol to be used for a legend symbol item. More... | |
void | setOrderBy (const QgsFeatureRequest::OrderBy &orderBy) |
Define the order in which features shall be processed by this renderer. More... | |
void | setOrderByEnabled (bool enabled) |
Sets whether custom ordering should be applied before features are processed by this renderer. More... | |
void | setPaintEffect (QgsPaintEffect *effect) |
Sets the current paint effect for the renderer. More... | |
void | setUsingSymbolLevels (bool usingSymbolLevels) |
void | setVertexMarkerAppearance (int type, double size) |
Sets type and size of editing vertex markers for subsequent rendering. More... | |
virtual void | startRender (QgsRenderContext &context, const QgsFields &fields) |
Must be called when a new render cycle is started. More... | |
virtual void | stopRender (QgsRenderContext &context) |
Must be called when a render cycle has finished, to allow the renderer to clean up. More... | |
virtual QgsSymbol * | symbolForFeature (const QgsFeature &feature, QgsRenderContext &context) const =0 |
To be overridden. More... | |
virtual QgsSymbolList | symbols (QgsRenderContext &context) const |
Returns list of symbols used by the renderer. More... | |
virtual QgsSymbolList | symbolsForFeature (const QgsFeature &feature, QgsRenderContext &context) const |
Returns list of symbols used for rendering the feature. More... | |
virtual void | toSld (QDomDocument &doc, QDomElement &element, const QVariantMap &props=QVariantMap()) const |
used from subclasses to create SLD Rule elements following SLD v1.1 specs More... | |
QString | type () const |
virtual QSet< QString > | usedAttributes (const QgsRenderContext &context) const =0 |
Returns a list of attributes required by this renderer. More... | |
bool | usingSymbolLevels () const |
virtual bool | willRenderFeature (const QgsFeature &feature, QgsRenderContext &context) const |
Returns whether the renderer will render a feature or not. More... | |
virtual QDomElement | writeSld (QDomDocument &doc, const QString &styleName, const QVariantMap &props=QVariantMap()) const |
create the SLD UserStyle element following the SLD v1.1 specs with the given name More... | |
Static Public Member Functions | |
static QgsFeatureRenderer * | defaultRenderer (QgsWkbTypes::GeometryType geomType) |
Returns a new renderer - used by default in vector layers. More... | |
static QgsFeatureRenderer * | load (QDomElement &symbologyElem, const QgsReadWriteContext &context) |
create a renderer from XML element More... | |
static QgsFeatureRenderer * | loadSld (const QDomNode &node, QgsWkbTypes::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 | |
QgsFeatureRenderer (const QString &type) | |
void | copyRendererData (QgsFeatureRenderer *destRenderer) const |
Clones generic renderer data to another renderer. More... | |
void | renderFeatureWithSymbol (const QgsFeature &feature, QgsSymbol *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker) SIP_THROW(QgsCsException) |
Render the feature with the symbol using context. More... | |
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... | |
Static Protected Member Functions | |
static QPointF | _getPoint (QgsRenderContext &context, const QgsPoint &point) |
Creates a point in screen coordinates from a wkb string in map coordinates. More... | |
static void | convertSymbolRotation (QgsSymbol *symbol, const QString &field) |
static void | convertSymbolSizeScale (QgsSymbol *symbol, QgsSymbol::ScaleMethod method, const QString &field) |
Protected Attributes | |
double | mCurrentVertexMarkerSize |
The current size of editing marker. More... | |
int | mCurrentVertexMarkerType |
The current type of editing marker. More... | |
bool | mForceRaster |
QgsFeatureRequest::OrderBy | mOrderBy |
bool | mOrderByEnabled |
QgsPaintEffect * | mPaintEffect = nullptr |
QString | mType |
bool | mUsingSymbolLevels |
Definition at line 102 of file qgsrenderer.h.
Used to specify details about a renderer.
Is returned from the capabilities() method.
Enumerator | |
---|---|
SymbolLevels | Rendering with symbol levels (i.e. implements symbols(), symbolForFeature()) |
MoreSymbolsPerFeature | May use more than one symbol to render a feature: symbolsForFeature() will return them. |
Filter | Features may be filtered, i.e. some features may not be rendered (categorized, rule based ...) |
ScaleDependent | Depends on scale if feature will be rendered (rule based ) |
Definition at line 252 of file qgsrenderer.h.
|
virtual |
Definition at line 72 of file qgsrenderer.cpp.
|
protected |
Definition at line 60 of file qgsrenderer.cpp.
|
staticprotected |
Creates a point in screen coordinates from a wkb string in map coordinates.
Definition at line 45 of file qgsrenderer.cpp.
|
virtual |
Accepts the specified symbology visitor, causing it to visit all symbols associated with the renderer.
Returns true
if the visitor should continue visiting other objects, or false
if visiting should be canceled.
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsPointDisplacementRenderer, QgsPointClusterRenderer, QgsMergedFeatureRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
Definition at line 466 of file qgsrenderer.cpp.
|
inlinevirtual |
Returns details about internals of this renderer.
E.g. if you only want to deal with visible features:
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 274 of file qgsrenderer.h.
|
virtual |
item in symbology was checked
Reimplemented in QgsRuleBasedRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and QgsPointDistanceRenderer.
Definition at line 342 of file qgsrenderer.cpp.
|
pure virtual |
Create a deep copy of this renderer.
Should be implemented by all subclasses and generate a proper subclass.
Implemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDisplacementRenderer, QgsPointClusterRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsInvertedPolygonRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
|
staticprotected |
Definition at line 493 of file qgsrenderer.cpp.
|
staticprotected |
Definition at line 471 of file qgsrenderer.cpp.
|
protected |
Clones generic renderer data to another renderer.
Currently clones
destRenderer | destination renderer for copied effect |
Definition at line 50 of file qgsrenderer.cpp.
|
static |
Returns a new renderer - used by default in vector layers.
Definition at line 77 of file qgsrenderer.cpp.
|
virtual |
Returns debug information about this renderer.
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsInvertedPolygonRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 139 of file qgsrenderer.cpp.
|
virtual |
Returns the current embedded renderer (subrenderer) for this feature renderer.
The base class implementation does not use subrenderers and will always return nullptr
.
Reimplemented in QgsPointDistanceRenderer, and QgsMergedFeatureRenderer.
Definition at line 461 of file qgsrenderer.cpp.
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.
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 205 of file qgsrenderer.h.
|
virtual |
Returns true
if this renderer requires the geometry to apply the filter.
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 115 of file qgsrenderer.cpp.
|
inline |
Returns whether the renderer must render as a raster.
Definition at line 412 of file qgsrenderer.h.
|
inlinevirtual |
If supported by the renderer, return classification attribute for the use in legend.
Reimplemented in QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 354 of file qgsrenderer.h.
|
virtual |
Returns legend keys matching a specified feature.
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 87 of file qgsrenderer.cpp.
|
virtual |
items of symbology items in legend is checked
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 336 of file qgsrenderer.cpp.
|
virtual |
Returns a list of symbology items for the legend.
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 354 of file qgsrenderer.cpp.
|
virtual |
items of symbology items in legend should be checkable
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 331 of file qgsrenderer.cpp.
|
static |
create a renderer from XML element
Definition at line 150 of file qgsrenderer.cpp.
|
static |
Create a new renderer according to the information contained in the UserStyle element of a SLD style document.
node | the node in the SLD document whose the UserStyle element is a child |
geomType | the geometry type of the features, used to convert Symbolizer elements |
errorMessage | it will contain the error message if something went wrong |
Definition at line 205 of file qgsrenderer.cpp.
|
virtual |
Allows for a renderer to modify the extent of a feature request prior to rendering.
extent | reference to request's filter extent. Modify extent to change the extent of feature request |
context | render context |
Reimplemented in QgsHeatmapRenderer.
Definition at line 411 of file qgsrenderer.cpp.
QgsFeatureRequest::OrderBy QgsFeatureRenderer::orderBy | ( | ) | const |
Gets the order in which features shall be processed by this renderer.
false
Definition at line 436 of file qgsrenderer.cpp.
bool QgsFeatureRenderer::orderByEnabled | ( | ) | const |
Returns whether custom ordering will be applied before features are processed by this renderer.
Definition at line 446 of file qgsrenderer.cpp.
|
virtual |
Returns 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.
Reimplemented in QgsSingleSymbolRenderer, QgsPointDistanceRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 82 of file qgsrenderer.cpp.
|
virtual |
Equivalent of originalSymbolsForFeature() call extended to support renderers that may use more symbols per feature - similar to symbolsForFeature()
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, and QgsMergedFeatureRenderer.
Definition at line 417 of file qgsrenderer.cpp.
QgsPaintEffect * QgsFeatureRenderer::paintEffect | ( | ) | const |
Returns the current paint effect for the renderer.
Definition at line 425 of file qgsrenderer.cpp.
|
virtual |
Render a feature using this renderer in the given context.
Must be called between startRender() and stopRender() calls. Default implementation renders a symbol as determined by symbolForFeature() call. Returns true
if the feature has been returned (this is used for example to determine whether the feature may be labelled).
If layer is not -1, the renderer should draw only a particula layer from symbols (in order to support symbol level rendering).
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, and QgsHeatmapRenderer.
Definition at line 120 of file qgsrenderer.cpp.
|
protected |
Render the feature with the symbol using context.
Use layer to specify the symbol layer, selected to specify if it should be rendered as selected and drawVertexMarker to specify if vertex markers should be rendered.
Definition at line 134 of file qgsrenderer.cpp.
|
protected |
render editing vertex marker at specified point
Definition at line 370 of file qgsrenderer.cpp.
|
protected |
render editing vertex marker for a polygon
Definition at line 385 of file qgsrenderer.cpp.
|
protected |
render editing vertex marker for a polyline
Definition at line 378 of file qgsrenderer.cpp.
|
virtual |
store renderer info to XML element
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDisplacementRenderer, QgsPointClusterRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsInvertedPolygonRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
Definition at line 185 of file qgsrenderer.cpp.
|
virtual |
Sets an embedded renderer (subrenderer) for this feature renderer.
The base class implementation does nothing with subrenderers, but individual derived classes can use these to modify their behavior.
subRenderer | the embedded renderer. Ownership will be transferred. |
Reimplemented in QgsMergedFeatureRenderer, and QgsPointDistanceRenderer.
Definition at line 456 of file qgsrenderer.cpp.
|
inline |
Sets whether the renderer should be rendered to a raster destination.
forceRaster | set 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. |
Definition at line 422 of file qgsrenderer.h.
|
virtual |
Sets the symbol to be used for a legend symbol item.
key | rule key for legend symbol |
symbol | new symbol for legend item. Ownership is transferred to renderer. |
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsMergedFeatureRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 348 of file qgsrenderer.cpp.
void QgsFeatureRenderer::setOrderBy | ( | const QgsFeatureRequest::OrderBy & | orderBy | ) |
Define the order in which features shall be processed by this renderer.
false
Definition at line 441 of file qgsrenderer.cpp.
void QgsFeatureRenderer::setOrderByEnabled | ( | bool | enabled | ) |
Sets whether custom ordering should be applied before features are processed by this renderer.
enabled | set to true to enable custom feature ordering |
Definition at line 451 of file qgsrenderer.cpp.
void QgsFeatureRenderer::setPaintEffect | ( | QgsPaintEffect * | effect | ) |
Sets the current paint effect for the renderer.
effect | paint effect. Ownership is transferred to the renderer. |
Definition at line 430 of file qgsrenderer.cpp.
|
inline |
Definition at line 284 of file qgsrenderer.h.
void QgsFeatureRenderer::setVertexMarkerAppearance | ( | int | type, |
double | size | ||
) |
Sets type and size of editing vertex markers for subsequent rendering.
Definition at line 359 of file qgsrenderer.cpp.
|
virtual |
Must be called when a new render cycle is started.
A call to startRender() must always be followed by a corresponding call to stopRender() after all features have been rendered.
context | Additional information passed to the renderer about the job which will be rendered |
fields | The fields available for rendering |
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsPointDisplacementRenderer, QgsPointClusterRenderer, QgsMergedFeatureRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
Definition at line 94 of file qgsrenderer.cpp.
|
virtual |
Must be called when a render cycle has finished, to allow the renderer to clean up.
Calls to stopRender() must always be preceded by a call to startRender().
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsPointDisplacementRenderer, QgsPointClusterRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
Definition at line 108 of file qgsrenderer.cpp.
|
pure virtual |
To be overridden.
Must be called between startRender() and stopRender() calls.
feature | feature |
context | render context |
Implemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
|
virtual |
Returns list of symbols used by the renderer.
context | render context |
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
Definition at line 144 of file qgsrenderer.cpp.
|
virtual |
Returns list of symbols used for rendering the feature.
For renderers that do not support MoreSymbolsPerFeature it is more efficient to use symbolForFeature()
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, and QgsMergedFeatureRenderer.
Definition at line 403 of file qgsrenderer.cpp.
|
inlinevirtual |
used from subclasses to create SLD Rule elements following SLD v1.1 specs
Reimplemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsGraduatedSymbolRenderer, and QgsCategorizedSymbolRenderer.
Definition at line 312 of file qgsrenderer.h.
|
inline |
Definition at line 141 of file qgsrenderer.h.
|
pure virtual |
Returns a list of attributes required by this renderer.
Attributes not listed in here may not have been requested from the provider at rendering time.
Implemented in QgsSingleSymbolRenderer, QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsPointDisplacementRenderer, QgsPointClusterRenderer, QgsNullSymbolRenderer, QgsMergedFeatureRenderer, QgsHeatmapRenderer, QgsGraduatedSymbolRenderer, QgsCategorizedSymbolRenderer, and Qgs25DRenderer.
|
inline |
Definition at line 283 of file qgsrenderer.h.
|
virtual |
Returns whether the renderer will render a feature or not.
Must be called between startRender() and stopRender() calls. Default implementation uses symbolForFeature().
Reimplemented in QgsRuleBasedRenderer, QgsPointDistanceRenderer, QgsNullSymbolRenderer, and QgsMergedFeatureRenderer.
Definition at line 365 of file qgsrenderer.cpp.
|
virtual |
create the SLD UserStyle element following the SLD v1.1 specs with the given name
Definition at line 316 of file qgsrenderer.cpp.
|
protected |
The current size of editing marker.
Definition at line 527 of file qgsrenderer.h.
|
protected |
The current type of editing marker.
Definition at line 525 of file qgsrenderer.h.
|
protected |
Definition at line 531 of file qgsrenderer.h.
|
protected |
Definition at line 545 of file qgsrenderer.h.
|
protected |
Definition at line 547 of file qgsrenderer.h.
|
protected |
Definition at line 529 of file qgsrenderer.h.
|
protected |
Definition at line 520 of file qgsrenderer.h.
|
protected |
Definition at line 522 of file qgsrenderer.h.