18 #ifndef QGSPROCESSINGUTILS_H 19 #define QGSPROCESSINGUTILS_H 21 #include "qgis_core.h" 61 static QList< QgsRasterLayer * > compatibleRasterLayers(
QgsProject *project,
bool sort =
true );
78 static QList< QgsVectorLayer * > compatibleVectorLayers(
QgsProject *project,
79 const QList< int > &sourceTypes = QList< int >(),
95 static QList<QgsMeshLayer *> compatibleMeshLayers(
QgsProject *project,
bool sort =
true );
106 static QList< QgsMapLayer * > compatibleLayers(
QgsProject *project,
bool sort =
true );
161 static QString normalizeLayerSource(
const QString &source );
169 static QString variantToPythonLiteral(
const QVariant &value );
176 static QString stringToPythonLiteral(
const QString &
string );
201 const QVariantMap &createOptions = QVariantMap(),
202 QgsFeatureSink::SinkFlags sinkFlags =
nullptr )
SIP_FACTORY;
248 static QVariant generateIteratingDestination(
const QVariant &input,
const QVariant &
id,
QgsProcessingContext &context );
254 static QString tempFolder();
262 static QString generateTempFilename(
const QString &basename );
287 static QString convertToCompatibleFormat(
const QgsVectorLayer *layer,
288 bool selectedFeaturesOnly,
289 const QString &baseName,
290 const QStringList &compatibleFormats,
291 const QString &preferredFormat,
325 static QString convertToCompatibleFormatAndLayerName(
const QgsVectorLayer *layer,
326 bool selectedFeaturesOnly,
327 const QString &baseName,
328 const QStringList &compatibleFormats,
329 const QString &preferredFormat,
351 static QList<int> fieldNamesToIndices(
const QStringList &fieldNames,
const QgsFields &fields );
357 static QgsFields indicesToFields(
const QList<int> &indices,
const QgsFields &fields );
369 static QString defaultVectorExtension();
381 static QString defaultRasterExtension();
387 const QList< int > &sourceTypes = QList< int >() );
423 static void parseDestinationString( QString &destination, QString &providerKey, QString &uri, QString &layerName, QString &format, QMap<QString, QVariant> &options,
bool &useWriter, QString &extension );
425 friend class TestQgsProcessing;
444 FlagSkipGeometryValidityChecks = 1 << 1,
446 Q_DECLARE_FLAGS( Flags,
Flag )
472 long featureCount()
const override;
473 QString sourceName()
const override;
474 QSet<QVariant> uniqueValues(
int fieldIndex,
int limit = -1 )
const override;
475 QVariant minimumValue(
int fieldIndex )
const override;
476 QVariant maximumValue(
int fieldIndex )
const override;
489 bool mOwnsSource = false;
491 std::function<
void( const
QgsFeature & ) > mInvalidGeometryCallback;
492 std::function<
void( const
QgsFeature & ) > mTransformErrorCallback;
525 bool addFeature(
QgsFeature &feature, QgsFeatureSink::Flags flags =
nullptr )
override;
526 bool addFeatures(
QgsFeatureList &features, QgsFeatureSink::Flags flags =
nullptr )
override;
527 bool addFeatures(
QgsFeatureIterator &iterator, QgsFeatureSink::Flags flags =
nullptr )
override;
533 bool mOwnsSink =
false;
538 #endif // QGSPROCESSINGUTILS_H Wrapper for iterator of features from vector data provider or vector layer.
A rectangle specified with double values.
Base class for all map layer types.
QSet< QgsFeatureId > QgsFeatureIds
Base class for providing feedback from a processing algorithm.
A simple feature sink which proxies feature addition on to another feature sink.
FeatureAvailability
Possible return value for hasFeatures() to determine if a source is empty.
LayerHint
Layer type hints.
Represents a raster layer.
QList< QgsFeature > QgsFeatureList
An interface for objects which accept features via addFeature(s) methods.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource, modifying results according to the settings in a QgsProcessingContext.
Container of fields for a vector layer.
#define SIP_MONKEYPATCH_SCOPEENUM
Abstract base class for processing providers.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
const QgsCoordinateReferenceSystem & crs
Abstract base class for processing algorithms.
Utility functions for use with processing classes.
Type
The WKB type describes the number of dimensions a geometry has.
This class wraps a request for features to a vector layer (or directly its vector data provider)...
Custom exception class for processing related exceptions.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts, annotations, canvases, etc.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Contains information about the context in which a coordinate transform is executed.
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
Flag
Flags controlling how QgsProcessingFeatureSource fetches features.
QgsProxyFeatureSink subclass which reports feature addition errors to a QgsProcessingContext.
An interface for objects which provide features via a getFeatures method.
This class represents a coordinate reference system (CRS).
Represents a mesh layer supporting display of data on structured or unstructured meshes.
SpatialIndexPresence
Enumeration of spatial index presence states.
A storage object for map layers, in which the layers are owned by the store and have their lifetime b...
Represents a vector layer which manages a vector based data sets.
Contains information about the context in which a processing algorithm is executed.