QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
Go to the documentation of this file.
17 #ifndef QGS_GEOMETRYCHECKERUTILS_H
18 #define QGS_GEOMETRYCHECKERUTILS_H
20 #include "qgis_analysis.h"
72 QPointer<QgsVectorLayer> layer()
const SIP_SKIP;
77 QString layerId()
const;
96 bool useMapCrs()
const;
120 LayerFeatures(
const QMap<QString, QgsFeaturePool *> &featurePools,
121 const QMap<QString, QgsFeatureIds> &featureIds,
122 const QList<QgsWkbTypes::GeometryType> &geometryTypes,
125 bool useMapCrs =
false );
130 LayerFeatures(
const QMap<QString, QgsFeaturePool *> &featurePools,
131 const QList<QString> &layerIds,
const QgsRectangle &extent,
132 const QList<QgsWkbTypes::GeometryType> &geometryTypes,
176 bool nextLayerFeature(
bool begin );
177 bool nextLayer(
bool begin );
178 bool nextFeature(
bool begin );
179 QList<QString>::const_iterator mLayerIt;
180 QgsFeatureIds::const_iterator mFeatureIt;
182 std::unique_ptr<QgsGeometryCheckerUtils::LayerFeature> mCurrentFeature;
203 QMap<QString, QgsFeaturePool *> mFeaturePools;
204 QMap<QString, QgsFeatureIds> mFeatureIds;
205 QList<QString> mLayerIds;
207 QList<QgsWkbTypes::GeometryType> mGeometryTypes;
210 bool mUseMapCrs =
true;
215 static std::unique_ptr<QgsGeometryEngine> createGeomEngine(
const QgsAbstractGeometry *geometry,
double tolerance );
220 static QList <const QgsLineString *> polygonRings(
const QgsPolygon *polygon );
232 const int nVerts = geom->
vertexCount( iPart, iRing );
235 const bool closed = back == front;
238 return closed ? nVerts - 1 : nVerts;
248 static bool pointOnLine(
const QgsPoint &p,
const QgsLineString *line,
double tol,
bool excludeExtremities =
false );
263 double dx = p1.
x() - p2.
x(), dy = p1.
y() - p2.
y();
264 return ( dx * dx + dy * dy ) < tol * tol;
269 const int nVerts = geom->
vertexCount( iPart, iRing );
272 const bool closed = back == front;
273 return closed ? nVerts > 4 : nVerts > 2;
280 #endif // QGS_GEOMETRYCHECKERUTILS_H
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Point geometry type, with support for z-dimension and m-values.
static int polyLineSize(const QgsAbstractGeometry *geom, int iPart, int iRing, bool *isClosed=nullptr)
Returns the number of points in a polyline, accounting for duplicate start and end point if the polyl...
Line string geometry type, with support for z-dimension and m-values.
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
A rectangle specified with double values.
virtual int vertexCount(int part=0, int ring=0) const =0
Returns the number of vertices of which this geometry is built.
virtual QgsPoint vertexAt(QgsVertexId id) const =0
Returns the point corresponding to a specified vertex id.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Base configuration for geometry checks.
A layer feature combination to uniquely identify and access a feature in a set of layers.
QgsMargins operator*(const QgsMargins &margins, double factor)
Returns a QgsMargins object that is formed by multiplying each component of the given margins by fact...
virtual bool isEmpty() const
Returns true if the geometry is empty.
Abstract base class for all geometries.
An iterator over all features in a QgsGeometryCheckerUtils::LayerFeatures.
A class to represent a 2D point.
static bool canDeleteVertex(const QgsAbstractGeometry *geom, int iPart, int iRing)
A geometry is the spatial representation of a feature.
Contains a set of layers and feature ids in those layers to pass to a geometry check.
Utility class for identifying a unique vertex within a geometry.
Contains utilities required for geometry checks.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
A geometry engine is a low-level representation of a QgsAbstractGeometry object, optimised for use wi...
A feature pool is based on a vector layer and caches features.
static bool pointsFuzzyEqual(const QgsPointXY &p1, const QgsPointXY &p2, double tol)
Determine whether two points are equal up to the specified tolerance.