QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
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(
43 const QgsProcessingContext &context,
44 QgsFeatureSource *targetSource,
45 QgsFeatureSource *referenceSource,
46 double distance,
47 const QgsProperty &distanceProperty,
48 const std::function<void( const QgsFeature & )> &handleFeatureFunction,
49 bool onlyRequireTargetIds,
50 QgsProcessingFeedback *feedback,
51 QgsExpressionContext &expressionContext
52 );
53
54 private:
55 void processByIteratingOverTargetSource(
56 const QgsProcessingContext &context,
57 QgsFeatureSource *targetSource,
58 QgsFeatureSource *referenceSource,
59 double distance,
60 const QgsProperty &distanceProperty,
61 const std::function<void( const QgsFeature & )> &handleFeatureFunction,
62 bool onlyRequireTargetIds,
63 QgsProcessingFeedback *feedback,
64 QgsExpressionContext &expressionContext
65 );
66 void processByIteratingOverReferenceSource(
67 const QgsProcessingContext &context,
68 QgsFeatureSource *targetSource,
69 QgsFeatureSource *referenceSource,
70 double distance,
71 const std::function<void( const QgsFeature & )> &handleFeatureFunction,
72 bool onlyRequireTargetIds,
73 QgsProcessingFeedback *feedback
74 );
75};
76
77
81class QgsSelectWithinDistanceAlgorithm : public QgsDistanceWithinAlgorithm
82{
83 public:
84 QgsSelectWithinDistanceAlgorithm() = default;
85 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
86 QIcon icon() const override { return QgsApplication::getThemeIcon( u"/algorithms/mAlgorithmSelectDistance.svg"_s ); }
87 QString svgIconPath() const override { return QgsApplication::iconPath( u"/algorithms/mAlgorithmSelectDistance.svg"_s ); }
88 QString name() const override;
89 Qgis::ProcessingAlgorithmFlags flags() const override;
90 QString displayName() const override;
91 QStringList tags() const override;
92 QString group() const override;
93 QString groupId() const override;
94 QString shortHelpString() const override;
95 QString shortDescription() const override;
96 QgsSelectWithinDistanceAlgorithm *createInstance() const override SIP_FACTORY;
97
98 protected:
99 QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
100};
101
105class QgsExtractWithinDistanceAlgorithm : public QgsDistanceWithinAlgorithm
106{
107 public:
108 QgsExtractWithinDistanceAlgorithm() = default;
109 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
110 QString name() const override;
111 QString displayName() const override;
112 QStringList tags() const override;
113 QString group() const override;
114 QString groupId() const override;
115 QString shortHelpString() const override;
116 QString shortDescription() const override;
117 QgsExtractWithinDistanceAlgorithm *createInstance() const override SIP_FACTORY;
118
119 protected:
120 QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
121};
122
124
125#endif // QGSALGORITHMDISTANCEWITHIN_H
QFlags< ProcessingAlgorithmFlag > ProcessingAlgorithmFlags
Flags indicating how and when an algorithm operates and should be exposed to users.
Definition qgis.h:3724
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