QGIS API Documentation  3.8.0-Zanzibar (11aff65)
Public Types | Public Member Functions | List of all members
QgsGeometryOverlapCheck Class Reference

Checks if geometries overlap. More...

#include <qgsgeometryoverlapcheck.h>

Inheritance diagram for QgsGeometryOverlapCheck:
Inheritance graph
[legend]

Public Types

enum  ResolutionMethod { Subtract, NoChange }
 Available resolution methods. More...
 
- Public Types inherited from QgsGeometryCheck
typedef QMap< QString, QMap< QgsFeatureId, QList< QgsGeometryCheck::Change > > > Changes
 A collection of changes. More...
 
enum  ChangeType { ChangeAdded, ChangeRemoved, ChangeChanged }
 Description of the type of a change. More...
 
enum  ChangeWhat { ChangeFeature, ChangePart, ChangeRing, ChangeNode }
 Description of a change to indicate at which level a change occurred. More...
 
enum  CheckType { FeatureNodeCheck, FeatureCheck, LayerCheck }
 The type of a check. More...
 
enum  Flag { AvailableInValidation = 1 << 1 }
 Flags for geometry checks. More...
 

Public Member Functions

 QgsGeometryOverlapCheck (const QgsGeometryCheckContext *context, const QVariantMap &configuration)
 Checks for overlapping polygons. More...
 
QgsGeometryCheck::CheckType checkType () const override
 Returns the check type. More...
 
void collectErrors (const QMap< QString, QgsFeaturePool *> &featurePools, QList< QgsGeometryCheckError *> &errors, QStringList &messages, QgsFeedback *feedback, const LayerFeatureIds &ids=LayerFeatureIds()) const override
 The main worker method. More...
 
QList< QgsWkbTypes::GeometryTypecompatibleGeometryTypes () const override
 A list of geometry types for which this check can be performed. More...
 
QString description () const override
 Returns a human readable description for this check. More...
 
void fixError (const QMap< QString, QgsFeaturePool *> &featurePools, QgsGeometryCheckError *error, int method, const QMap< QString, int > &mergeAttributeIndices, Changes &changes) const override
 Fix the error error with the specified method. More...
 
QgsGeometryCheck::Flags flags () const override
 Flags for this geometry check. More...
 
QString id () const override
 Returns an id for this check. More...
 
QStringList resolutionMethods () const override
 Returns a list of descriptions for available resolutions for errors. More...
 
- Public Member Functions inherited from QgsGeometryCheck
 QgsGeometryCheck (const QgsGeometryCheckContext *context, const QVariantMap &configuration)
 Create a new geometry check. More...
 
virtual ~QgsGeometryCheck ()=default
 
template<class T >
configurationValue (const QString &name, const QVariant &defaultValue=QVariant())
 Returns the configuration value with the name, saved in the QGIS settings for this geometry check. More...
 
const QgsGeometryCheckContextcontext () const
 Returns the context. More...
 
virtual bool isCompatible (QgsVectorLayer *layer) const
 Returns if this geometry check is compatible with layer. More...
 

Additional Inherited Members

- Protected Member Functions inherited from QgsGeometryCheck
QMap< QString, QgsFeatureIdsallLayerFeatureIds (const QMap< QString, QgsFeaturePool *> &featurePools) const
 Returns all layers and feature ids. More...
 
void deleteFeatureGeometryPart (const QMap< QString, QgsFeaturePool *> &featurePools, const QString &layerId, QgsFeature &feature, int partIdx, Changes &changes) const
 Deletes a part of a feature geometry. More...
 
void deleteFeatureGeometryRing (const QMap< QString, QgsFeaturePool *> &featurePools, const QString &layerId, QgsFeature &feature, int partIdx, int ringIdx, Changes &changes) const
 Deletes a ring in a feature geometry. More...
 
void replaceFeatureGeometryPart (const QMap< QString, QgsFeaturePool *> &featurePools, const QString &layerId, QgsFeature &feature, int partIdx, QgsAbstractGeometry *newPartGeom, Changes &changes) const
 Replaces a part in a feature geometry. More...
 
double scaleFactor (const QPointer< QgsVectorLayer > &layer) const
 Determines the scale factor of a layer to the map coordinate reference system. More...
 
- Protected Attributes inherited from QgsGeometryCheck
QVariantMap mConfiguration
 
const QgsGeometryCheckContextmContext
 

Detailed Description

Checks if geometries overlap.

Since
QGIS 3.4

Definition at line 93 of file qgsgeometryoverlapcheck.h.

Member Enumeration Documentation

◆ ResolutionMethod

Available resolution methods.

Enumerator
Subtract 

Subtract the overlap region from the polygon.

NoChange 

Do not change anything.

Definition at line 100 of file qgsgeometryoverlapcheck.h.

Constructor & Destructor Documentation

◆ QgsGeometryOverlapCheck()

QgsGeometryOverlapCheck::QgsGeometryOverlapCheck ( const QgsGeometryCheckContext context,
const QVariantMap &  configuration 
)

Checks for overlapping polygons.

In configuration a maxOverlapArea parameter can be passed. In case this parameter is set to something else than 0.0, the error will only be reported if the overlapping area is smaller than maxOverlapArea. Overlapping areas smaller than the reducedTolerance parameter of the context are ignored.

Definition at line 24 of file qgsgeometryoverlapcheck.cpp.

Member Function Documentation

◆ checkType()

QgsGeometryCheck::CheckType QgsGeometryOverlapCheck::checkType ( ) const
inlineoverridevirtual

Returns the check type.

Since
QGIS 3.4

Implements QgsGeometryCheck.

Definition at line 123 of file qgsgeometryoverlapcheck.h.

◆ collectErrors()

void QgsGeometryOverlapCheck::collectErrors ( const QMap< QString, QgsFeaturePool *> &  featurePools,
QList< QgsGeometryCheckError *> &  errors,
QStringList &  messages,
QgsFeedback feedback,
const LayerFeatureIds ids = LayerFeatureIds() 
) const
overridevirtual

The main worker method.

Check all features available from featurePools and write errors found to errors. Other status messages can be written to messages. Progress should be reported to feedback. Only features and layers listed in ids should be checked.

Since
QGIS 3.4

Implements QgsGeometryCheck.

Definition at line 32 of file qgsgeometryoverlapcheck.cpp.

◆ compatibleGeometryTypes()

QList<QgsWkbTypes::GeometryType> QgsGeometryOverlapCheck::compatibleGeometryTypes ( ) const
inlineoverridevirtual

A list of geometry types for which this check can be performed.

Since
QGIS 3.4

Implements QgsGeometryCheck.

Definition at line 115 of file qgsgeometryoverlapcheck.h.

◆ description()

QString QgsGeometryOverlapCheck::description ( ) const
overridevirtual

Returns a human readable description for this check.

Since
QGIS 3.4

Implements QgsGeometryCheck.

Definition at line 220 of file qgsgeometryoverlapcheck.cpp.

◆ fixError()

void QgsGeometryOverlapCheck::fixError ( const QMap< QString, QgsFeaturePool *> &  featurePools,
QgsGeometryCheckError error,
int  method,
const QMap< QString, int > &  mergeAttributeIndices,
Changes changes 
) const
overridevirtual

Fix the error error with the specified method.

Since
QGIS 3.4

Reimplemented from QgsGeometryCheck.

Definition at line 95 of file qgsgeometryoverlapcheck.cpp.

◆ flags()

QgsGeometryCheck::Flags QgsGeometryOverlapCheck::flags ( ) const
overridevirtual

Flags for this geometry check.

Reimplemented from QgsGeometryCheck.

Definition at line 230 of file qgsgeometryoverlapcheck.cpp.

◆ id()

QString QgsGeometryOverlapCheck::id ( ) const
overridevirtual

Returns an id for this check.

Since
QGIS 3.4

Implements QgsGeometryCheck.

Definition at line 225 of file qgsgeometryoverlapcheck.cpp.

◆ resolutionMethods()

QStringList QgsGeometryOverlapCheck::resolutionMethods ( ) const
overridevirtual

Returns a list of descriptions for available resolutions for errors.

The index will be passed as method to

See also
fixError().
Since
QGIS 3.4

Implements QgsGeometryCheck.

Definition at line 212 of file qgsgeometryoverlapcheck.cpp.


The documentation for this class was generated from the following files: