/** \class QgsPointClusterRenderer * \ingroup core * A renderer that automatically clusters points with the same geographic position. * \note added in QGIS 3.0 */ class QgsPointClusterRenderer : QgsPointDistanceRenderer { %TypeHeaderCode #include %End public: QgsPointClusterRenderer(); virtual QgsPointClusterRenderer *clone() const /Factory/; virtual void startRender( QgsRenderContext &context, const QgsFields &fields ); void stopRender( QgsRenderContext &context ); QDomElement save( QDomDocument &doc ); virtual QSet usedAttributes( const QgsRenderContext &context ) const; //! Create a renderer from XML element static QgsFeatureRenderer *create( QDomElement &symbologyElem ) /Factory/; /** Returns the symbol used for rendering clustered groups (but not ownership of the symbol). * @see setClusterSymbol() */ QgsMarkerSymbol *clusterSymbol(); /** Sets the symbol for rendering clustered groups. * @param symbol new cluster symbol. Ownership is transferred to the renderer. * @see clusterSymbol() */ void setClusterSymbol( QgsMarkerSymbol *symbol /Transfer/ ); /** Creates a QgsPointDisplacementRenderer from an existing renderer. * @note added in 2.5 * @returns a new renderer if the conversion was possible, otherwise nullptr. */ static QgsPointClusterRenderer *convertFromRenderer( const QgsFeatureRenderer *renderer ) /Factory/; private: QgsPointClusterRenderer( const QgsPointClusterRenderer & ); QgsPointClusterRenderer &operator=( const QgsPointClusterRenderer & ); void drawGroup( QPointF centerPoint, QgsRenderContext &context, const QgsPointDistanceRenderer::ClusteredGroup &group ); };