30 QList<QgsSingleGeometryCheckError *> errors;
33 if ( ( mAllowedTypes & ( 1 << type ) ) == 0 )
54 if ( ( mAllowedTypes & ( 1 << type ) ) != 0 )
61 if ( method == NoChange )
65 else if ( method == Convert )
71 for (
int iPart = 1, nParts = geom->
partCount(); iPart < nParts; ++iPart )
118 if ( !geomCollection )
139 else if ( method == Delete )
153 static QStringList methods = QStringList()
154 << tr(
"Convert to corresponding multi or single type if possible, otherwise delete feature" )
155 << tr(
"Delete feature" )
156 << tr(
"No action" );
162 return tr(
"Geometry type" );
172 return QStringLiteral(
"QgsGeometryTypeCheck" );
QString id() const override
Returns an id for this check.
static Type singleType(Type type)
Returns the single type for a WKB type.
static Type multiType(Type type)
Returns the multi type for a WKB type.
static QString factoryId()
static QgsAbstractGeometry * getGeomPart(QgsAbstractGeometry *geom, int partIdx)
Multi point geometry collection.
static bool isMultiType(Type type)
Returns true if the WKB type is a multi type.
Something has been added.
virtual bool isEqual(const QgsSingleGeometryCheckError *other) const
Check if this error is equal to other.
Multi line string geometry collection.
CheckType
The type of a check.
A geometry is the spatial representation of a feature.
void setAttributes(const QgsAttributes &attrs)
Sets the feature's attributes.
void setObsolete()
Set the error status to obsolete.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
virtual QgsAbstractGeometry * clone() const =0
Clones the geometry by performing a deep copy.
Multi surface geometry collection.
QString description() const override
A human readable description of this error.
QString description() const override
Returns a human readable description for this check.
void setFixFailed(const QString &reason)
Set the error status to failed and specify the reason for failure.
virtual void updateFeature(QgsFeature &feature)=0
Updates a feature in this pool.
static QgsGeometryCheck::CheckType factoryCheckType()
The check controls geometries as a whole.
Type
The WKB type describes the number of dimensions a geometry has.
Something has been removed.
QgsGeometryCheck::CheckType checkType() const override
Returns the check type.
bool getFeature(QgsFeatureId id, QgsFeature &feature)
Retrieves the feature with the specified id into feature.
Multi curve geometry collection.
virtual bool addFeature(QgsFeature &feature, QgsFeatureSink::Flags flags=nullptr)
Adds a single feature to the sink.
Abstract base class for all geometries.
const QString & layerId() const
The id of the layer on which this error has been detected.
QgsWkbTypes::Type wkbType() const
Returns the WKB type of the geometry.
An error from a QgsSingleGeometryCheck.
static QString factoryDescription()
const QgsAbstractGeometry * constGet() const
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
static bool isSingleType(Type type)
Returns true if the WKB type is a single type.
QList< QgsSingleGeometryCheckError * > processGeometry(const QgsGeometry &geometry) const override
Check the geometry for errors.
QStringList resolutionMethods() const override
Returns a list of descriptions for available resolutions for errors.
QMap< QString, QMap< QgsFeatureId, QList< QgsGeometryCheck::Change > > > Changes
A collection of changes.
Multi polygon geometry collection.
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.
A feature pool is based on a vector layer and caches features.
Descripts a change to fix a geometry.
void setFixed(int method)
Set the status to fixed and specify the method that has been used to fix the error.
void setGeometry(const QgsGeometry &geometry)
Set the feature's geometry.
virtual void deleteFeature(QgsFeatureId fid)=0
Removes a feature from this pool.
static QString displayString(Type type)
Returns a display string type for a WKB type, e.g., the geometry name used in WKT geometry representa...
QgsFeatureId featureId() const
The id of the feature on which this error has been detected.
This represents an error reported by a geometry check.
bool isEqual(const QgsSingleGeometryCheckError *other) const override
Check if this error is equal to other.
Something has been updated.
static Type flatType(Type type)
Returns the flat type for a WKB type.
This change happens on feature level.
virtual int partCount() const =0
Returns count of parts contained in the geometry.
virtual bool addGeometry(QgsAbstractGeometry *g)
Adds a geometry and takes ownership. Returns true in case of success.