18#ifndef QGS_GEOMETRY_GAP_CHECK_H
19#define QGS_GEOMETRY_GAP_CHECK_H
42 , mNeighbors( neighbors )
43 , mGapAreaBBox( gapAreaBBox )
44 , mContextBoundingBox( contextArea )
53 const QMap<QString, QgsFeatureIds> &
neighbors()
const {
return mNeighbors; }
67 QIcon
icon()
const override;
70 QMap<QString, QgsFeatureIds> mNeighbors;
97 Q_ENUM( ResolutionMethod )
110 void collectErrors(
const QMap<QString, QgsFeaturePool *> &featurePools, QList<QgsGeometryCheckError *> &errors, QStringList &messages,
QgsFeedback *feedback,
const LayerFeatureIds &ids = LayerFeatureIds() )
const override;
111 void fixError(
const QMap<QString, QgsFeaturePool *> &featurePools,
QgsGeometryCheckError *error,
int method,
const QMap<QString, int> &mergeAttributeIndices, Changes &changes )
const override;
112 Q_DECL_DEPRECATED QStringList resolutionMethods()
const override;
114 QList<QgsGeometryCheckResolutionMethod> availableResolutionMethods()
const override;
117 QString id()
const override;
122 static QString factoryDescription()
SIP_SKIP;
123 static QString factoryId()
SIP_SKIP;
125 static QList<
Qgis::GeometryType> factoryCompatibleGeometryTypes()
SIP_SKIP;
137 bool mergeWithNeighbor(
const QMap<QString, QgsFeaturePool *> &featurePools,
QgsGeometryGapCheckError *err, Changes &changes, QString &errMsg, Condition condition )
const;
139 const double mGapThresholdMapUnits;
141 std::unique_ptr<QgsVectorLayerFeatureSource> mAllowedGapsSource;
142 double mAllowedGapsBuffer = 0;
The Qgis class provides global constants for use throughout the application.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Base configuration for geometry checks.
This represents an error reported by a geometry check.
virtual QMap< QString, QgsFeatureIds > involvedFeatures() const
Returns a list of involved features.
virtual void update(const QgsGeometryCheckError *other)
Update this error with the information from other.
virtual QString description() const
The error description.
virtual bool isEqual(QgsGeometryCheckError *other) const
Check if this error is equal to other.
virtual bool closeMatch(QgsGeometryCheckError *) const
Check if this error is almost equal to other.
virtual QgsRectangle affectedAreaBBox() const
The bounding box of the affected area of the error.
virtual QIcon icon() const
Returns an icon that should be shown for this kind of error.
virtual bool handleChanges(const QgsGeometryCheck::Changes &changes)
Apply a list of changes.
virtual QgsRectangle contextBoundingBox() const
The context of the error.
This class implements a geometry check.
QMap< QString, QMap< QgsFeatureId, QList< QgsGeometryCheck::Change > > > Changes
A collection of changes.
CheckType
The type of a check.
An error produced by a QgsGeometryGapCheck.
QgsGeometryGapCheckError(const QgsGeometryCheck *check, const QString &layerId, const QgsGeometry &geometry, const QMap< QString, QgsFeatureIds > &neighbors, double area, const QgsRectangle &gapAreaBBox, const QgsRectangle &contextArea)
Create a new gap check error produced by check on the layer layerId.
const QMap< QString, QgsFeatureIds > & neighbors() const
A map of layers and feature ids of the neighbors of the gap.
Checks for gaps between neighbouring polygons.
QgsGeometryCheck::CheckType checkType() const override
Returns the check type.
ResolutionMethod
Resolution methods for geometry gap checks.
@ CreateNewFeature
Create a new feature with the gap geometry.
@ AddToAllowedGaps
Add gap geometry to allowed gaps layer.
@ MergeLongestEdge
Merge the gap with the polygon with the longest shared edge.
@ NoChange
Do not handle the error.
@ MergeLargestArea
Merge with neighbouring polygon with largest area.
QList< Qgis::GeometryType > compatibleGeometryTypes() const override
A list of geometry types for which this check can be performed.
A geometry is the spatial representation of a feature.
A rectangle specified with double values.
Represents a vector layer which manages a vector based data sets.
void CPL_STDCALL collectErrors(CPLErr, int, const char *msg)
QPointer< QgsMapLayer > QgsWeakMapLayerPointer
Weak pointer for QgsMapLayer.
Utility class for identifying a unique vertex within a geometry.