mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
190 lines
5.4 KiB
Plaintext
190 lines
5.4 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgsaggregatecalculator.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class QgsAggregateCalculator
|
|
{
|
|
%Docstring(signature="appended")
|
|
Utility class for calculating aggregates for a field (or expression) over the features
|
|
from a vector layer. It is recommended that :py:func:`QgsVectorLayer.aggregate()` is used rather then
|
|
directly using this class, as the :py:class:`QgsVectorLayer` method can handle delegating aggregate calculation
|
|
to a data provider for remote calculation.
|
|
|
|
.. versionadded:: 2.16
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsaggregatecalculator.h"
|
|
%End
|
|
public:
|
|
|
|
struct AggregateInfo
|
|
{
|
|
QString function;
|
|
QString name;
|
|
QSet<QVariant::Type> supportedTypes;
|
|
};
|
|
|
|
enum Aggregate
|
|
{
|
|
Count,
|
|
CountDistinct,
|
|
CountMissing,
|
|
Min,
|
|
Max,
|
|
Sum,
|
|
Mean,
|
|
Median,
|
|
StDev,
|
|
StDevSample,
|
|
Range,
|
|
Minority,
|
|
Majority,
|
|
FirstQuartile,
|
|
ThirdQuartile,
|
|
InterQuartileRange,
|
|
StringMinimumLength,
|
|
StringMaximumLength,
|
|
StringConcatenate,
|
|
GeometryCollect,
|
|
ArrayAggregate,
|
|
StringConcatenateUnique
|
|
};
|
|
|
|
struct AggregateParameters
|
|
{
|
|
|
|
QString filter;
|
|
|
|
QString delimiter;
|
|
|
|
QgsFeatureRequest::OrderBy orderBy;
|
|
};
|
|
|
|
QgsAggregateCalculator( const QgsVectorLayer *layer );
|
|
%Docstring
|
|
Constructor for QgsAggregateCalculator.
|
|
|
|
:param layer: vector layer to calculate aggregate from
|
|
%End
|
|
|
|
QString lastError() const;
|
|
%Docstring
|
|
Returns the last error encountered during the aggregate calculation.
|
|
|
|
.. versionadded:: 3.22
|
|
%End
|
|
|
|
const QgsVectorLayer *layer() const;
|
|
%Docstring
|
|
Returns the associated vector layer.
|
|
%End
|
|
|
|
void setParameters( const AggregateParameters ¶meters );
|
|
%Docstring
|
|
Sets all aggregate parameters from a parameter bundle.
|
|
|
|
:param parameters: aggregate parameters
|
|
%End
|
|
|
|
void setFilter( const QString &filterExpression );
|
|
%Docstring
|
|
Sets a filter to limit the features used during the aggregate calculation.
|
|
|
|
:param filterExpression: expression for filtering features, or empty string to remove filter
|
|
|
|
.. seealso:: :py:func:`filter`
|
|
%End
|
|
|
|
void setFidsFilter( const QgsFeatureIds &fids );
|
|
%Docstring
|
|
Sets a filter to limit the features used during the aggregate calculation.
|
|
If an expression filter is set, it will override this filter.
|
|
|
|
:param fids: feature ids for feature filtering, and empty list will return no features.
|
|
|
|
.. seealso:: :py:func:`filter`
|
|
%End
|
|
|
|
QString filter() const;
|
|
%Docstring
|
|
Returns the filter which limits the features used during the aggregate calculation.
|
|
|
|
.. seealso:: :py:func:`setFilter`
|
|
%End
|
|
|
|
void setDelimiter( const QString &delimiter );
|
|
%Docstring
|
|
Sets the delimiter to use for joining values with the StringConcatenate aggregate.
|
|
|
|
:param delimiter: string delimiter
|
|
|
|
.. seealso:: :py:func:`delimiter`
|
|
%End
|
|
|
|
QString delimiter() const;
|
|
%Docstring
|
|
Returns the delimiter used for joining values with the StringConcatenate aggregate.
|
|
|
|
.. seealso:: :py:func:`setDelimiter`
|
|
%End
|
|
|
|
QVariant calculate( Aggregate aggregate, const QString &fieldOrExpression,
|
|
QgsExpressionContext *context = 0, bool *ok = 0, QgsFeedback *feedback = 0 ) const;
|
|
%Docstring
|
|
Calculates the value of an aggregate.
|
|
|
|
:param aggregate: aggregate to calculate
|
|
:param fieldOrExpression: source field or expression to use as basis for aggregated values.
|
|
If an expression is used, then the context parameter must be set.
|
|
:param context: expression context for evaluating expressions
|
|
:param ok: if specified, will be set to ``True`` if aggregate calculation was successful. If ``ok`` is ``False`` then :py:func:`~QgsAggregateCalculator.lastError` can be used to retrieve a descriptive error message.
|
|
:param feedback: optional feedback argument for early cancellation (since QGIS 3.22). If set, this will take precedence over any feedback object
|
|
set on the expression ``context``.
|
|
|
|
:return: calculated aggregate value
|
|
%End
|
|
|
|
static Aggregate stringToAggregate( const QString &string, bool *ok = 0 );
|
|
%Docstring
|
|
Converts a string to a aggregate type.
|
|
|
|
:param string: string to convert
|
|
:param ok: if specified, will be set to ``True`` if conversion was successful
|
|
|
|
:return: aggregate type
|
|
%End
|
|
|
|
static QString displayName( Aggregate aggregate );
|
|
%Docstring
|
|
Returns the friendly display name for a ``aggregate``.
|
|
|
|
.. versionadded:: 3.22
|
|
%End
|
|
|
|
static QList< QgsAggregateCalculator::AggregateInfo > aggregates();
|
|
%Docstring
|
|
Structured information for available aggregates.
|
|
|
|
.. versionadded:: 3.2
|
|
%End
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgsaggregatecalculator.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|