18#ifndef QGSPROCESSINGUTILS_H
19#define QGSPROCESSINGUTILS_H
73 static QList< QgsRasterLayer * > compatibleRasterLayers(
QgsProject *project,
bool sort =
true );
95 static QList< QgsVectorLayer * > compatibleVectorLayers(
QgsProject *project,
96 const QList< int > &sourceTypes = QList< int >(),
117 static QList<QgsMeshLayer *> compatibleMeshLayers(
QgsProject *project,
bool sort =
true );
137 static QList<QgsPluginLayer *> compatiblePluginLayers(
QgsProject *project,
bool sort =
true );
157 static QList<QgsPointCloudLayer *> compatiblePointCloudLayers(
QgsProject *project,
bool sort =
true );
177 static QList<QgsAnnotationLayer *> compatibleAnnotationLayers(
QgsProject *project,
bool sort =
true );
197 static QList<QgsVectorTileLayer *> compatibleVectorTileLayers(
QgsProject *project,
bool sort =
true );
217 static QList<QgsTiledSceneLayer *> compatibleTiledSceneLayers(
QgsProject *project,
bool sort =
true );
228 static QList< QgsMapLayer * > compatibleLayers(
QgsProject *project,
bool sort =
true );
236 static QString encodeProviderKeyAndUri(
const QString &providerKey,
const QString &uri );
249 static bool decodeProviderKeyAndUri(
const QString &
string, QString &providerKey
SIP_OUT, QString &uri
SIP_OUT );
309 static QString normalizeLayerSource( const QString &source )
SIP_HOLDGIL;
326 static QString variantToPythonLiteral( const QVariant &value );
333 static QString stringToPythonLiteral( const QString &
string )
SIP_HOLDGIL;
358 const QVariantMap &createOptions = QVariantMap(),
359 const QStringList &datasourceOptions = QStringList(),
360 const QStringList &layerOptions = QStringList(),
408 static QVariant generateIteratingDestination( const QVariant &input, const QVariant &
id,
QgsProcessingContext &context );
422 static QString generateTempFilename( const QString &basename, const
QgsProcessingContext *context =
nullptr );
452 static QString convertToCompatibleFormat( const
QgsVectorLayer *layer,
453 bool selectedFeaturesOnly,
454 const QString &baseName,
455 const QStringList &compatibleFormats,
456 const QString &preferredFormat,
459 long long featureLimit = -1,
460 const QString &filterExpression = QString() );
496 static QString convertToCompatibleFormatAndLayerName( const
QgsVectorLayer *layer,
497 bool selectedFeaturesOnly,
498 const QString &baseName,
499 const QStringList &compatibleFormats,
500 const QString &preferredFormat,
504 long long featureLimit = -1,
505 const QString &filterExpression = QString() );
524 static QList<
int> fieldNamesToIndices( const QStringList &fieldNames, const
QgsFields &fields )
SIP_HOLDGIL;
544 static QString defaultVectorExtension();
558 static QString defaultRasterExtension();
571 static QString defaultPointCloudExtension();
584 static QString defaultVectorTileExtension();
592 static QVariantMap removePointerValuesFromMap( const QVariantMap &map );
601 static QVariantMap preprocessQgisProcessParameters( const QVariantMap ¶meters,
bool &ok, QString &error );
611 static QString resolveDefaultEncoding( const QString &defaultEncoding = "System" );
622 const QList<
int > &sourceTypes = QList<
int >() );
636 template< typename T> static QList< T * > compatibleMapLayers(
QgsProject *project,
bool sort = true );
670 Q_DECL_DEPRECATED static
QgsMapLayer *loadMapLayerFromString( const QString &
string, LayerHint typeHint = LayerHint::UnknownType )
SIP_DEPRECATED ;
672 static
void parseDestinationString( QString &destination, QString &providerKey, QString &uri, QString &layerName, QString &format, QMap<QString, QVariant> &options,
bool &useWriter, QString &extension );
674 friend class TestQgsProcessing;
702 long long featureLimit = -1,
const QString &filterExpression = QString() );
719 long long featureCount()
const override;
720 QString sourceName()
const override;
721 QSet<QVariant> uniqueValues(
int fieldIndex,
int limit = -1 )
const override;
722 QVariant minimumValue(
int fieldIndex )
const override;
723 QVariant maximumValue(
int fieldIndex )
const override;
752 bool mOwnsSource =
false;
761 std::function< void(
const QgsFeature & ) > mInvalidGeometryCallback;
762 std::function< void(
const QgsFeature & ) > mTransformErrorCallback;
764 std::function< void(
const QgsFeature & ) > mInvalidGeometryCallbackSkip;
765 std::function< void(
const QgsFeature & ) > mInvalidGeometryCallbackAbort;
767 long long mFeatureLimit = -1;
768 QString mFilterExpression;
808 bool mOwnsSink =
false;
SpatialIndexPresence
Enumeration of spatial index presence states.
@ Unknown
Spatial index presence cannot be determined, index may or may not exist.
FeatureAvailability
Possible return value for QgsFeatureSource::hasFeatures() to determine if a source is empty.
InvalidGeometryCheck
Methods for handling of features with invalid geometries.
@ NoCheck
No invalid geometry checking.
WkbType
The WKB type describes the number of dimensions a geometry has.
QFlags< ProcessingFeatureSourceFlag > ProcessingFeatureSourceFlags
Flags which control how QgsProcessingFeatureSource fetches features.
Represents a map layer containing a set of georeferenced annotations, e.g.
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Wrapper for iterator of features from vector data provider or vector layer.
This class wraps a request for features to a vector layer (or directly its vector data provider).
An interface for objects which accept features via addFeature(s) methods.
QFlags< SinkFlag > SinkFlags
An interface for objects which provide features via a getFeatures method.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Container of fields for a vector layer.
A storage object for map layers, in which the layers are owned by the store and have their lifetime b...
Base class for all map layer types.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Base class for plugin layers.
Represents a map layer supporting display of point clouds.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Custom exception class for processing related exceptions.
QgsProxyFeatureSink subclass which reports feature addition errors to a QgsProcessingContext.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
Base class for providing feedback from a processing algorithm.
Abstract base class for processing providers.
Utility functions for use with processing classes.
LayerHint
Layer type hints.
@ UnknownType
Unknown layer type.
Contains enumerations and other constants for use in processing algorithms and parameters.
QFlags< LayerOptionsFlag > LayerOptionsFlags
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
A simple feature sink which proxies feature addition on to another feature sink.
Represents a raster layer.
A rectangle specified with double values.
Defines the parameters used to remap features when creating a QgsRemappingProxyFeatureSink.
Represents a map layer supporting display of tiled scene objects.
Represents a vector layer which manages a vector based data sets.
Implements a map layer that is dedicated to rendering of vector tiles.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into allowing algorithms to be written in pure substantial changes are required in order to port existing x Processing algorithms for QGIS x The most significant changes are outlined not GeoAlgorithm For algorithms which operate on features one by consider subclassing the QgsProcessingFeatureBasedAlgorithm class This class allows much of the boilerplate code for looping over features from a vector layer to be bypassed and instead requires implementation of a processFeature method Ensure that your algorithm(or algorithm 's parent class) implements the new pure virtual createInstance(self) call
#define SIP_MONKEYPATCH_SCOPEENUM
#define SIP_THROW(name,...)
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
const QgsCoordinateReferenceSystem & crs