QGIS API Documentation 3.99.0-Master (c22de0620c0)
Loading...
Searching...
No Matches
qgsalgorithmdistancewithin.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsalgorithmdistancewithin.h
3 ---------------------
4 begin : August 2021
5 copyright : (C) 2021 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSALGORITHMDISTANCEWITHIN_H
19#define QGSALGORITHMDISTANCEWITHIN_H
20
21
22#include "qgis_sip.h"
23#include "qgsapplication.h"
25
26#include <QString>
27
28#define SIP_NO_FILE
29
30using namespace Qt::StringLiterals;
31
33
34
38class QgsDistanceWithinAlgorithm : public QgsProcessingAlgorithm
39{
40 protected:
41 void addDistanceParameter();
42 void process( const QgsProcessingContext &context, QgsFeatureSource *targetSource, QgsFeatureSource *referenceSource, double distance, const QgsProperty &distanceProperty, const std::function<void( const QgsFeature & )> &handleFeatureFunction, bool onlyRequireTargetIds, QgsProcessingFeedback *feedback, QgsExpressionContext &expressionContext );
43
44 private:
45 void processByIteratingOverTargetSource( const QgsProcessingContext &context, QgsFeatureSource *targetSource, QgsFeatureSource *referenceSource, double distance, const QgsProperty &distanceProperty, const std::function<void( const QgsFeature & )> &handleFeatureFunction, bool onlyRequireTargetIds, QgsProcessingFeedback *feedback, QgsExpressionContext &expressionContext );
46 void processByIteratingOverReferenceSource( const QgsProcessingContext &context, QgsFeatureSource *targetSource, QgsFeatureSource *referenceSource, double distance, const std::function<void( const QgsFeature & )> &handleFeatureFunction, bool onlyRequireTargetIds, QgsProcessingFeedback *feedback );
47};
48
49
53class QgsSelectWithinDistanceAlgorithm : public QgsDistanceWithinAlgorithm
54{
55 public:
56 QgsSelectWithinDistanceAlgorithm() = default;
57 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
58 QIcon icon() const override { return QgsApplication::getThemeIcon( u"/algorithms/mAlgorithmSelectDistance.svg"_s ); }
59 QString svgIconPath() const override { return QgsApplication::iconPath( u"/algorithms/mAlgorithmSelectDistance.svg"_s ); }
60 QString name() const override;
61 Qgis::ProcessingAlgorithmFlags flags() const override;
62 QString displayName() const override;
63 QStringList tags() const override;
64 QString group() const override;
65 QString groupId() const override;
66 QString shortHelpString() const override;
67 QString shortDescription() const override;
68 QgsSelectWithinDistanceAlgorithm *createInstance() const override SIP_FACTORY;
69
70 protected:
71 QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
72};
73
77class QgsExtractWithinDistanceAlgorithm : public QgsDistanceWithinAlgorithm
78{
79 public:
80 QgsExtractWithinDistanceAlgorithm() = default;
81 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
82 QString name() const override;
83 QString displayName() const override;
84 QStringList tags() const override;
85 QString group() const override;
86 QString groupId() const override;
87 QString shortHelpString() const override;
88 QString shortDescription() const override;
89 QgsExtractWithinDistanceAlgorithm *createInstance() const override SIP_FACTORY;
90
91 protected:
92 QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
93};
94
96
97#endif // QGSALGORITHMDISTANCEWITHIN_H
QFlags< ProcessingAlgorithmFlag > ProcessingAlgorithmFlags
Flags indicating how and when an algorithm operates and should be exposed to users.
Definition qgis.h:3695
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
static QString iconPath(const QString &iconFile)
Returns path to the desired icon file.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
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...
Definition qgsfeature.h:60
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Base class for providing feedback from a processing algorithm.
A store for object properties.
#define SIP_FACTORY
Definition qgis_sip.h:83