33#include <QDomDocument>
53#define RENDERER_TAG_NAME "renderer-v2"
112 const QString type = sipCpp->
type();
114 if ( type == QLatin1String(
"singleSymbol" ) )
115 sipType = sipType_QgsSingleSymbolRenderer;
116 else if ( type == QLatin1String(
"categorizedSymbol" ) )
117 sipType = sipType_QgsCategorizedSymbolRenderer;
118 else if ( type == QLatin1String(
"graduatedSymbol" ) )
119 sipType = sipType_QgsGraduatedSymbolRenderer;
120 else if ( type == QLatin1String(
"RuleRenderer" ) )
121 sipType = sipType_QgsRuleBasedRenderer;
122 else if ( type == QLatin1String(
"heatmapRenderer" ) )
123 sipType = sipType_QgsHeatmapRenderer;
124 else if ( type == QLatin1String(
"invertedPolygonRenderer" ) )
125 sipType = sipType_QgsInvertedPolygonRenderer;
126 else if ( type == QLatin1String(
"pointCluster" ) )
127 sipType = sipType_QgsPointClusterRenderer;
128 else if ( type == QLatin1String(
"pointDisplacement" ) )
129 sipType = sipType_QgsPointDisplacementRenderer;
130 else if ( type == QLatin1String(
"25dRenderer" ) )
131 sipType = sipType_Qgs25DRenderer;
132 else if ( type == QLatin1String(
"nullSymbol" ) )
133 sipType = sipType_QgsNullSymbolRenderer;
134 else if ( type == QLatin1String(
"embeddedSymbol" ) )
135 sipType = sipType_QgsEmbeddedSymbolRenderer;
165 QString
type()
const {
return mType; }
223 virtual bool canSkipRender();
252 virtual bool usesEmbeddedSymbols()
const;
257 virtual bool filterNeedsGeometry()
const;
285 virtual QString dump() const;
294 MoreSymbolsPerFeature = 1 << 2,
296 ScaleDependent = 1 << 4
345 virtual QDomElement writeSld( QDomDocument &doc,
const QString &styleName,
const QVariantMap &props = QVariantMap() )
const;
361 virtual void toSld( QDomDocument &doc, QDomElement &element,
const QVariantMap &props = QVariantMap() )
const
363 element.appendChild( doc.createComment( QStringLiteral(
"FeatureRenderer %1 not implemented yet" ).arg( type() ) ) );
361 virtual void toSld( QDomDocument &doc, QDomElement &element,
const QVariantMap &props = QVariantMap() )
const {
…}
374 QSet< QString > legendKeys()
const;
380 virtual bool legendSymbolItemsCheckable()
const;
389 virtual bool legendSymbolItemChecked(
const QString &key );
398 virtual void checkLegendSymbolItem(
const QString &key,
bool state =
true );
424 virtual QString legendKeyToExpression(
const QString &key,
QgsVectorLayer *layer,
bool &ok
SIP_OUT )
const;
521 void setDataDefinedProperty( Property key,
const QgsProperty &property );
604 bool orderByEnabled()
const;
612 void setOrderByEnabled(
bool enabled );
679 void renderVertexMarkerPolyline( QPolygonF &pts,
QgsRenderContext &context );
681 void renderVertexMarkerPolygon( QPolygonF &pts, QList<QPolygonF> *rings,
QgsRenderContext &context );
697 void saveRendererData( QDomDocument &doc, QDomElement &element,
const QgsReadWriteContext &context );
701 bool mUsingSymbolLevels =
false;
707 double mCurrentVertexMarkerSize = 2;
711 bool mForceRaster =
false;
713 double mReferenceScale = -1.0;
723 static void convertSymbolRotation(
QgsSymbol *symbol,
const QString &field );
727 bool mOrderByEnabled =
false;
735 static void initPropertyDefinitions();
741 QThread *mThread =
nullptr;
ScaleMethod
Scale methods.
QFlags< FeatureRendererFlag > FeatureRendererFlags
Flags controlling behavior of vector feature renderers.
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Custom exception class for Coordinate Reference System related exceptions.
Abstract base class for all 2D vector feature renderers.
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the renderer's property collection, used for data defined overrides.
virtual QString filter(const QgsFields &fields=QgsFields())
If a renderer does not require all the features this method may be overridden and return an expressio...
bool forceRasterRender() const
Returns whether the renderer must render as a raster.
void setForceRasterRender(bool forceRaster)
Sets whether the renderer should be rendered to a raster destination.
Property
Data definable properties for renderers.
QFlags< Capability > Capabilities
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
virtual QString legendClassificationAttribute() const
If supported by the renderer, return classification attribute for the use in legend.
double referenceScale() const
Returns the symbology reference scale.
void setReferenceScale(double scale)
Sets the symbology reference scale.
bool usingSymbolLevels() const
virtual QSet< QString > usedAttributes(const QgsRenderContext &context) const =0
Returns a list of attributes required by this renderer.
void setUsingSymbolLevels(bool usingSymbolLevels)
virtual QgsSymbol * symbolForFeature(const QgsFeature &feature, QgsRenderContext &context) const =0
To be overridden.
Capability
Used to specify details about a renderer.
const QgsPropertyCollection & dataDefinedProperties() const
Returns a reference to the renderer's property collection, used for data defined overrides.
QgsFeatureRequest::OrderBy mOrderBy
void setDataDefinedProperties(const QgsPropertyCollection &collection)
Sets the renderer's property collection, used for data defined overrides.
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
Represents a list of OrderByClauses, with the most important first and the least important last.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Container of fields for a vector layer.
Layer tree node points to a map layer.
An abstract interface for legend items returned from QgsMapLayerLegend implementation.
Base class for visual effects which can be applied to QPicture drawings.
Point geometry type, with support for z-dimension and m-values.
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
A store for object properties.
A container for the context for various read/write operations on objects.
A rectangle specified with double values.
Contains information about the context of a rendering operation.
An interface for classes which can visit style entity (e.g.
Represents a symbol level during vector rendering operations.
QgsSymbolLevelItem(QgsSymbol *symbol, int layer)
Abstract base class for all rendered symbols.
Represents a vector layer which manages a vector based dataset.
QMap< QString, QString > QgsStringMap
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_ENUM_BASETYPE(type)
#define SIP_THROW(name,...)
QList< QgsLegendSymbolItem > QgsLegendSymbolList
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.
QList< QgsSymbolLevel > QgsSymbolLevelOrder
QList< QgsSymbolLevelItem > QgsSymbolLevel
QMap< QString, QgsSymbol * > QgsSymbolMap
QList< QgsSymbol * > QgsSymbolList
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)