2016-08-15 12:04:17 +10:00
|
|
|
/** \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 <qgspointclusterrenderer.h>
|
|
|
|
%End
|
|
|
|
public:
|
|
|
|
|
|
|
|
QgsPointClusterRenderer();
|
|
|
|
|
2017-04-27 14:26:21 +08:00
|
|
|
virtual QgsPointClusterRenderer* clone() const /Factory/;
|
|
|
|
virtual void startRender( QgsRenderContext& context, const QgsFields& fields );
|
|
|
|
void stopRender( QgsRenderContext& context );
|
2017-05-12 17:31:01 +08:00
|
|
|
QDomElement save( QDomDocument& doc, const QgsReadWriteContext &context );
|
2017-04-27 14:26:21 +08:00
|
|
|
virtual QSet<QString> usedAttributes( const QgsRenderContext& context ) const;
|
2016-08-15 12:04:17 +10:00
|
|
|
|
|
|
|
//! Create a renderer from XML element
|
2017-05-12 17:31:01 +08:00
|
|
|
static QgsFeatureRenderer* create( QDomElement& symbologyElem, const QgsReadWriteContext &context ) /Factory/;
|
2016-08-15 12:04:17 +10:00
|
|
|
|
|
|
|
/** Returns the symbol used for rendering clustered groups (but not ownership of the symbol).
|
|
|
|
* @see setClusterSymbol()
|
|
|
|
*/
|
2017-05-01 18:13:15 +02:00
|
|
|
QgsMarkerSymbol *clusterSymbol();
|
2016-08-15 12:04:17 +10:00
|
|
|
|
|
|
|
/** Sets the symbol for rendering clustered groups.
|
|
|
|
* @param symbol new cluster symbol. Ownership is transferred to the renderer.
|
|
|
|
* @see clusterSymbol()
|
|
|
|
*/
|
2017-05-01 18:13:15 +02:00
|
|
|
void setClusterSymbol( QgsMarkerSymbol *symbol /Transfer/ );
|
2016-08-15 12:04:17 +10:00
|
|
|
|
|
|
|
/** Creates a QgsPointDisplacementRenderer from an existing renderer.
|
|
|
|
* @note added in 2.5
|
|
|
|
* @returns a new renderer if the conversion was possible, otherwise nullptr.
|
|
|
|
*/
|
2017-05-01 18:13:15 +02:00
|
|
|
static QgsPointClusterRenderer *convertFromRenderer( const QgsFeatureRenderer *renderer ) /Factory/;
|
2016-08-15 12:04:17 +10:00
|
|
|
|
|
|
|
private:
|
|
|
|
QgsPointClusterRenderer( const QgsPointClusterRenderer & );
|
2017-05-03 07:45:22 +02:00
|
|
|
QgsPointClusterRenderer &operator=( const QgsPointClusterRenderer & );
|
2016-08-15 12:04:17 +10:00
|
|
|
|
2017-05-01 18:13:15 +02:00
|
|
|
void drawGroup( QPointF centerPoint, QgsRenderContext &context, const QgsPointDistanceRenderer::ClusteredGroup &group );
|
2016-08-15 12:04:17 +10:00
|
|
|
};
|