QGIS API Documentation 3.37.0Master (fdefdf9c27f)

A geometry is the spatial representation of a feature. More...
#include <qgsgeometry.h>
Classes  
class  Error 
A geometry error. More...  
Public Member Functions  
QgsGeometry ()  
Constructor. More...  
QgsGeometry (const QgsGeometry &)  
Copy constructor will prompt a deep copy of the object. More...  
QgsGeometry (QgsAbstractGeometry *geom)  
Creates a geometry from an abstract geometry object. More...  
QgsGeometry (std::unique_ptr< QgsAbstractGeometry > geom)  
Creates a geometry from an abstract geometry object. More...  
virtual  ~QgsGeometry () 
Qgis::GeometryOperationResult  addPart (const QgsGeometry &newPart) 
Adds a new island polygon to a multipolygon feature. More...  
Qgis::GeometryOperationResult  addPart (const QgsPointSequence &points, Qgis::GeometryType geomType=Qgis::GeometryType::Unknown) 
Adds a new part to a the geometry. More...  
Qgis::GeometryOperationResult  addPart (const QVector< QgsPointXY > &points, Qgis::GeometryType geomType=Qgis::GeometryType::Unknown) 
Adds a new part to a the geometry. More...  
Qgis::GeometryOperationResult  addPart (QgsAbstractGeometry *part, Qgis::GeometryType geomType=Qgis::GeometryType::Unknown) 
Adds a new part to this geometry. More...  
Qgis::GeometryOperationResult  addRing (const QVector< QgsPointXY > &ring) 
Adds a new ring to this geometry. More...  
Qgis::GeometryOperationResult  addRing (QgsCurve *ring) 
Adds a new ring to this geometry. More...  
bool  addTopologicalPoint (const QgsPoint &point, double snappingTolerance=1e8, double segmentSearchEpsilon=1e12) 
Adds a vertex to the segment which intersect point but don't already have a vertex there. More...  
void  adjacentVertices (int atVertex, int &beforeVertex, int &afterVertex) const 
Returns the indexes of the vertices before and after the given vertex index. More...  
double  angleAtVertex (int vertex) const 
Returns the bisector angle for this geometry at the specified vertex. More...  
QgsGeometry  applyDashPattern (const QVector< double > &pattern, Qgis::DashPatternLineEndingRule startRule=Qgis::DashPatternLineEndingRule::NoRule, Qgis::DashPatternLineEndingRule endRule=Qgis::DashPatternLineEndingRule::NoRule, Qgis::DashPatternSizeAdjustment adjustment=Qgis::DashPatternSizeAdjustment::ScaleBothDashAndGap, double patternOffset=0) const 
Applies a dash pattern to a geometry, returning a MultiLineString geometry which is the input geometry stroked along each line/ring with the specified pattern. More...  
double  area () const 
Returns the planar, 2dimensional area of the geometry. More...  
QVector< QgsGeometry >  asGeometryCollection () const 
Returns contents of the geometry as a list of geometries. More...  
QString  asJson (int precision=17) const 
Exports the geometry to a GeoJSON string. More...  
virtual json  asJsonObject (int precision=17) const 
Exports the geometry to a json object. More...  
QgsMultiPointXY  asMultiPoint () const 
Returns the contents of the geometry as a multipoint. More...  
QgsMultiPolygonXY  asMultiPolygon () const 
Returns the contents of the geometry as a multipolygon. More...  
QgsMultiPolylineXY  asMultiPolyline () const 
Returns the contents of the geometry as a multilinestring. More...  
QgsPointXY  asPoint () const 
Returns the contents of the geometry as a 2dimensional point. More...  
QgsPolygonXY  asPolygon () const 
Returns the contents of the geometry as a polygon. More...  
QgsPolylineXY  asPolyline () const 
Returns the contents of the geometry as a polyline. More...  
QPointF  asQPointF () const 
Returns contents of the geometry as a QPointF if wkbType is WKBPoint, otherwise returns a null QPointF. More...  
QPolygonF  asQPolygonF () const 
Returns contents of the geometry as a QPolygonF. More...  
QByteArray  asWkb (QgsAbstractGeometry::WkbFlags flags=QgsAbstractGeometry::WkbFlags()) const 
Export the geometry to WKB. More...  
QString  asWkt (int precision=17) const 
Exports the geometry to WKT. More...  
Q_DECL_DEPRECATED int  avoidIntersections (const QList< QgsVectorLayer * > &avoidIntersectionsLayers, const QHash< QgsVectorLayer *, QSet< QgsFeatureId > > &ignoreFeatures=(QHash< QgsVectorLayer *, QSet< QgsFeatureId > >())) 
Modifies geometry to avoid intersections with the layers specified in project properties. More...  
Qgis::GeometryOperationResult  avoidIntersectionsV2 (const QList< QgsVectorLayer * > &avoidIntersectionsLayers, const QHash< QgsVectorLayer *, QSet< QgsFeatureId > > &ignoreFeatures=(QHash< QgsVectorLayer *, QSet< QgsFeatureId > >())) 
Modifies geometry to avoid intersections with the layers specified in project properties. More...  
QgsRectangle  boundingBox () const 
Returns the bounding box of the geometry. More...  
QgsBox3D  boundingBox3D () const 
Returns the 3D bounding box of the geometry. More...  
bool  boundingBoxIntersects (const QgsGeometry &geometry) const 
Returns true if the bounding box of this geometry intersects with the bounding box of another geometry. More...  
bool  boundingBoxIntersects (const QgsRectangle &rectangle) const 
Returns true if the bounding box of this geometry intersects with a rectangle. More...  
QgsGeometry  buffer (double distance, int segments) const 
Returns a buffer region around this geometry having the given width and with a specified number of segments used to approximate curves. More...  
QgsGeometry  buffer (double distance, int segments, Qgis::EndCapStyle endCapStyle, Qgis::JoinStyle joinStyle, double miterLimit) const 
Returns a buffer region around the geometry, with additional style options. More...  
QgsGeometry  centroid () const 
Returns the center of mass of a geometry. More...  
QgsGeometry  clipped (const QgsRectangle &rectangle) 
Clips the geometry using the specified rectangle. More...  
double  closestSegmentWithContext (const QgsPointXY &point, QgsPointXY &minDistPoint, int &nextVertexIndex, int *leftOrRightOfSegment=nullptr, double epsilon=DEFAULT_SEGMENT_EPSILON) const 
Searches for the closest segment of geometry to the given point. More...  
QgsPointXY  closestVertex (const QgsPointXY &point, int &closestVertexIndex, int &previousVertexIndex, int &nextVertexIndex, double &sqrDist) const 
Returns the vertex closest to the given point, the corresponding vertex index, squared distance snap point / target point and the indices of the vertices before and after the closest vertex. More...  
double  closestVertexWithContext (const QgsPointXY &point, int &atVertex) const 
Searches for the closest vertex in this geometry to the given point. More...  
QVector< QgsGeometry >  coerceToType (Qgis::WkbType type, double defaultZ=0, double defaultM=0) const 
Attempts to coerce this geometry into the specified destination type. More...  
QgsGeometry  combine (const QgsGeometry &geometry, const QgsGeometryParameters ¶meters=QgsGeometryParameters()) const 
Returns a geometry representing all the points in this geometry and other (a union geometry operation). More...  
QgsGeometry  concaveHull (double targetPercent, bool allowHoles=false) const 
Returns a possibly concave polygon that contains all the points in the geometry. More...  
QgsAbstractGeometry::const_part_iterator  const_parts_begin () const 
Returns STLstyle const iterator pointing to the first part of the geometry. More...  
QgsAbstractGeometry::const_part_iterator  const_parts_end () const 
Returns STLstyle iterator pointing to the imaginary part after the last part of the geometry. More...  
const QgsAbstractGeometry *  constGet () const 
Returns a nonmodifiable (const) reference to the underlying abstract geometry primitive. More...  
QgsGeometryConstPartIterator  constParts () const 
Returns Javastyle iterator for traversal of parts of the geometry. More...  
QgsGeometry  constrainedDelaunayTriangulation () const 
Returns a constrained Delaunay triangulation for the vertices of the geometry. More...  
bool  contains (const QgsGeometry &geometry) const 
Returns true if the geometry completely contains another geometry. More...  
bool  contains (const QgsPointXY *p) const 
Returns true if the geometry contains the point p. More...  
bool  convertGeometryCollectionToSubclass (Qgis::GeometryType geomType) 
Converts geometry collection to a the desired geometry type subclass (multipoint, multilinestring or multipolygon). More...  
bool  convertToCurvedMultiType () 
Converts a geometry into a multitype geometry of curve kind (when there is a corresponding curve type). More...  
QgsGeometry  convertToCurves (double distanceTolerance=1e8, double angleTolerance=1e8) const 
Attempts to convert a noncurved geometry into a curved geometry type (e.g. More...  
bool  convertToMultiType () 
Converts single type geometry into multitype geometry e.g. More...  
bool  convertToSingleType () 
Converts multi type geometry into single type geometry e.g. More...  
void  convertToStraightSegment (double tolerance=M_PI/180., QgsAbstractGeometry::SegmentationToleranceType toleranceType=QgsAbstractGeometry::MaximumAngle) 
Converts the geometry to straight line segments, if it is a curved geometry type. More...  
QgsGeometry  convertToType (Qgis::GeometryType destType, bool destMultipart=false) const 
Try to convert the geometry to the requested type. More...  
QgsGeometry  convexHull () const 
Returns the smallest convex polygon that contains all the points in the geometry. More...  
bool  crosses (const QgsGeometry &geometry) const 
Returns true if the geometry crosses another geometry. More...  
QgsGeometry  delaunayTriangulation (double tolerance=0.0, bool edgesOnly=false) const 
Returns the Delaunay triangulation for the vertices of the geometry. More...  
bool  deletePart (int partNum) 
Deletes part identified by the part number. More...  
bool  deleteRing (int ringNum, int partNum=0) 
Deletes a ring in polygon or multipolygon. More...  
bool  deleteVertex (int atVertex) 
Deletes the vertex at the given position number and item (first number is index 0) More...  
QgsGeometry  densifyByCount (int extraNodesPerSegment) const 
Returns a copy of the geometry which has been densified by adding the specified number of extra nodes within each segment of the geometry. More...  
QgsGeometry  densifyByDistance (double distance) const 
Densifies the geometry by adding regularly placed extra nodes inside each segment so that the maximum distance between any two nodes does not exceed the specified distance. More...  
QgsGeometry  difference (const QgsGeometry &geometry, const QgsGeometryParameters ¶meters=QgsGeometryParameters()) const 
Returns a geometry representing the points making up this geometry that do not make up other. More...  
bool  disjoint (const QgsGeometry &geometry) const 
Returns true if the geometry is disjoint of another geometry. More...  
double  distance (const QgsGeometry &geom) const 
Returns the minimum distance between this geometry and another geometry. More...  
double  distanceToVertex (int vertex) const 
Returns the distance along this geometry from its first vertex to the specified vertex. More...  
void  draw (QPainter &p) const 
Draws the geometry onto a QPainter. More...  
bool  equals (const QgsGeometry &geometry) const 
Test if this geometry is exactly equal to another geometry. More...  
QgsGeometry  extendLine (double startDistance, double endDistance) const 
Extends a (multi)line geometry by extrapolating out the start or end of the line by a specified distance. More...  
QgsGeometry  extrude (double x, double y) 
Returns an extruded version of this geometry. More...  
void  filterVertices (const std::function< bool(const QgsPoint &) > &filter) 
Filters the vertices from the geometry in place, removing any which do not return true for the filter function check. More...  
QgsGeometry  forcePolygonClockwise () const 
Forces geometries to respect the exterior ring is clockwise, interior rings are counterclockwise convention. More...  
QgsGeometry  forcePolygonCounterClockwise () const 
Forces geometries to respect the exterior ring is counterclockwise, interior rings are clockwise convention. More...  
QgsGeometry  forceRHR () const 
Forces geometries to respect the RightHandRule, in which the area that is bounded by a polygon is to the right of the boundary. More...  
double  frechetDistance (const QgsGeometry &geom) const 
Returns the FrÃ©chet distance between this geometry and geom, restricted to discrete points for both geometries. More...  
double  frechetDistanceDensify (const QgsGeometry &geom, double densifyFraction) const 
Returns the FrÃ©chet distance between this geometry and geom, restricted to discrete points for both geometries. More...  
void  fromWkb (const QByteArray &wkb) 
Set the geometry, feeding in the buffer containing OGC WellKnown Binary. More...  
void  fromWkb (unsigned char *wkb, int length) 
Set the geometry, feeding in the buffer containing OGC WellKnown Binary and the buffer's length. More...  
QgsAbstractGeometry *  get () 
Returns a modifiable (nonconst) reference to the underlying abstract geometry primitive. More...  
double  hausdorffDistance (const QgsGeometry &geom) const 
Returns the Hausdorff distance between this geometry and geom. More...  
double  hausdorffDistanceDensify (const QgsGeometry &geom, double densifyFraction) const 
Returns the Hausdorff distance between this geometry and geom. More...  
bool  insertVertex (const QgsPoint &point, int beforeVertex) 
Insert a new vertex before the given vertex index, ring and item (first number is index 0) If the requested vertex number (beforeVertex.back()) is greater than the last actual vertex on the requested ring and item, it is assumed that the vertex is to be appended instead of inserted. More...  
bool  insertVertex (double x, double y, int beforeVertex) 
Insert a new vertex before the given vertex index, ring and item (first number is index 0) If the requested vertex number (beforeVertex.back()) is greater than the last actual vertex on the requested ring and item, it is assumed that the vertex is to be appended instead of inserted. More...  
QgsGeometry  interpolate (double distance) const 
Returns an interpolated point on the geometry at the specified distance. More...  
double  interpolateAngle (double distance) const 
Returns the angle parallel to the linestring or polygon boundary at the specified distance along the geometry. More...  
QgsGeometry  intersection (const QgsGeometry &geometry, const QgsGeometryParameters ¶meters=QgsGeometryParameters()) const 
Returns a geometry representing the points shared by this geometry and other. More...  
bool  intersects (const QgsGeometry &geometry) const 
Returns true if this geometry exactly intersects with another geometry. More...  
bool  intersects (const QgsRectangle &rectangle) const 
Returns true if this geometry exactly intersects with a rectangle. More...  
bool  isAxisParallelRectangle (double maximumDeviation, bool simpleRectanglesOnly=false) const 
Returns true if the geometry is a polygon that is almost an axisparallel rectangle. More...  
bool  isEmpty () const 
Returns true if the geometry is empty (eg a linestring with no vertices, or a collection with no geometries). More...  
bool  isGeosEqual (const QgsGeometry &) const 
Compares the geometry with another geometry using GEOS. More...  
bool  isGeosValid (Qgis::GeometryValidityFlags flags=Qgis::GeometryValidityFlags()) const 
Checks validity of the geometry using GEOS. More...  
bool  isMultipart () const 
Returns true if WKB of the geometry is of WKBMulti* type. More...  
bool  isNull () const 
Returns true if the geometry is null (ie, contains no underlying geometry accessible via get() or constGet() ). More...  
bool  isPolygonClockwise () const 
Returns True if the Polygon is clockwise. More...  
bool  isPolygonCounterClockwise () const 
Returns True if the Polygon is counterclockwise. More...  
bool  isSimple () const 
Determines whether the geometry is simple (according to OGC definition), i.e. More...  
QgsGeometry  largestEmptyCircle (double tolerance, const QgsGeometry &boundary=QgsGeometry()) const 
Constructs the Largest Empty Circle for a set of obstacle geometries, up to a specified tolerance. More...  
QString  lastError () const 
Returns an error string referring to the last error encountered either when this geometry was created or when an operation was performed on the geometry. More...  
double  length () const 
Returns the planar, 2dimensional length of geometry. More...  
double  lineLocatePoint (const QgsGeometry &point) const 
Returns a distance representing the location along this linestring of the closest point on this linestring geometry to the specified point. More...  
QgsGeometry  makeDifference (const QgsGeometry &other) const 
Returns the geometry formed by modifying this geometry such that it does not intersect the other geometry. More...  
int  makeDifferenceInPlace (const QgsGeometry &other) 
Changes this geometry such that it does not intersect the other geometry. More...  
QgsGeometry  makeValid (Qgis::MakeValidMethod method=Qgis::MakeValidMethod::Linework, bool keepCollapsed=false) const 
Attempts to make an invalid geometry valid without losing vertices. More...  
void  mapToPixel (const QgsMapToPixel &mtp) 
Transforms the geometry from map units to pixels in place. More...  
QgsGeometry  mergeLines () const 
Merges any connected lines in a LineString/MultiLineString geometry and converts them to single line strings. More...  
QgsGeometry  minimalEnclosingCircle (QgsPointXY ¢er, double &radius, unsigned int segments=36) const 
Returns the minimal enclosing circle for the geometry. More...  
QgsGeometry  minimalEnclosingCircle (unsigned int segments=36) const 
Returns the minimal enclosing circle for the geometry. More...  
double  minimumClearance () const 
Computes the minimum clearance of a geometry. More...  
QgsGeometry  minimumClearanceLine () const 
Returns a LineString whose endpoints define the minimum clearance of a geometry. More...  
QgsGeometry  minimumWidth () const 
Returns a linestring geometry which represents the minimum diameter of the geometry. More...  
bool  moveVertex (const QgsPoint &p, int atVertex) 
Moves the vertex at the given position number and item (first number is index 0) to the given coordinates. More...  
bool  moveVertex (double x, double y, int atVertex) 
Moves the vertex at the given position number and item (first number is index 0) to the given coordinates. More...  
QgsGeometry  nearestPoint (const QgsGeometry &other) const 
Returns the nearest (closest) point on this geometry to another geometry. More...  
QgsGeometry  node () const 
Returns a (Multi)LineString representing the fully noded version of a collection of linestrings. More...  
void  normalize () 
Reorganizes the geometry into a normalized form (or "canonical" form). More...  
QgsGeometry  offsetCurve (double distance, int segments, Qgis::JoinStyle joinStyle, double miterLimit) const 
Returns an offset line at a given distance and side from an input line. More...  
operator QVariant () const  
Allows direct construction of QVariants from geometry. More...  
QgsGeometry &  operator= (QgsGeometry const &rhs) 
Creates a deep copy of the object. More...  
QgsGeometry  orientedMinimumBoundingBox () const 
Returns the oriented minimum bounding box for the geometry, which is the smallest (by area) rotated rectangle which fully encompasses the geometry. More...  
QgsGeometry  orientedMinimumBoundingBox (double &area, double &angle, double &width, double &height) const 
Returns the oriented minimum bounding box for the geometry, which is the smallest (by area) rotated rectangle which fully encompasses the geometry. More...  
QgsGeometry  orthogonalize (double tolerance=1.0E8, int maxIterations=1000, double angleThreshold=15.0) const 
Attempts to orthogonalize a line or polygon geometry by shifting vertices to make the geometries angles either right angles or flat lines. More...  
bool  overlaps (const QgsGeometry &geometry) const 
Returns true if the geometry overlaps another geometry. More...  
QgsGeometryPartIterator  parts () 
Returns Javastyle iterator for traversal of parts of the geometry. More...  
QgsAbstractGeometry::part_iterator  parts_begin () 
Returns STLstyle iterator pointing to the first part of the geometry. More...  
QgsAbstractGeometry::part_iterator  parts_end () 
Returns STLstyle iterator pointing to the imaginary part after the last part of the geometry. More...  
QgsGeometry  pointOnSurface () const 
Returns a point guaranteed to lie on the surface of a geometry. More...  
QgsGeometry  poleOfInaccessibility (double precision, double *distanceToBoundary=nullptr) const 
Calculates the approximate pole of inaccessibility for a surface, which is the most distant internal point from the boundary of the surface. More...  
Qgis::AngularDirection  polygonOrientation () const 
Returns the orientation of the polygon. More...  
QVector< QgsPointXY >  randomPointsInPolygon (int count, const std::function< bool(const QgsPointXY &) > &acceptPoint, unsigned long seed=0, QgsFeedback *feedback=nullptr, int maxTriesPerPoint=0) const 
Returns a list of count random points generated inside a (multi)polygon geometry (if acceptPoint is specified, and restrictive, the number of points returned may be less than count). More...  
QVector< QgsPointXY >  randomPointsInPolygon (int count, unsigned long seed=0, QgsFeedback *feedback=nullptr) const 
Returns a list of count random points generated inside a (multi)polygon geometry. More...  
bool  removeDuplicateNodes (double epsilon=4 *std::numeric_limits< double >::epsilon(), bool useZValues=false) 
Removes duplicate nodes from the geometry, wherever removing the nodes does not result in a degenerate geometry. More...  
QgsGeometry  removeInteriorRings (double minimumAllowedArea=1) const 
Removes the interior rings from a (multi)polygon geometry. More...  
bool  requiresConversionToStraightSegments () const 
Returns true if the geometry is a curved geometry type which requires conversion to display as straight line segments. More...  
Qgis::GeometryOperationResult  reshapeGeometry (const QgsLineString &reshapeLineString) 
Replaces a part of this geometry with another line. More...  
Qgis::GeometryOperationResult  rotate (double rotation, const QgsPointXY ¢er) 
Rotate this geometry around the Z axis. More...  
QgsGeometry  roundWaves (double wavelength, double amplitude, bool strictWavelength=false) const 
Constructs rounded (sinelike) waves along the boundary of the geometry, with the specified wavelength and amplitude. More...  
QgsGeometry  roundWavesRandomized (double minimumWavelength, double maximumWavelength, double minimumAmplitude, double maximumAmplitude, unsigned long seed=0) const 
Constructs randomized rounded (sinelike) waves along the boundary of the geometry, with the specified wavelength and amplitude ranges. More...  
void  set (QgsAbstractGeometry *geometry) 
Sets the underlying geometry store. More...  
QgsGeometry  sharedPaths (const QgsGeometry &other) const 
Find paths shared between the two given lineal geometries (this and other). More...  
QgsGeometry  shortestLine (const QgsGeometry &other) const 
Returns the shortest line joining this geometry to another geometry. More...  
QgsGeometry  simplify (double tolerance) const 
Returns a simplified version of this geometry using a specified tolerance value. More...  
QgsGeometry  simplifyCoverageVW (double tolerance, bool preserveBoundary) const 
Operates on a coverage (represented as a list of polygonal geometry with exactly matching edge geometry) to apply a Visvalingamâ€“Whyatt simplification to the edges, reducing complexity in proportion with the provided tolerance, while retaining a valid coverage (no edges will cross or touch after the simplification). More...  
QgsGeometry  singleSidedBuffer (double distance, int segments, Qgis::BufferSide side, Qgis::JoinStyle joinStyle=Qgis::JoinStyle::Round, double miterLimit=2.0) const 
Returns a single sided buffer for a (multi)line geometry. More...  
QgsGeometry  smooth (unsigned int iterations=1, double offset=0.25, double minimumDistance=1.0, double maxAngle=180.0) const 
Smooths a geometry by rounding off corners using the Chaikin algorithm. More...  
QgsGeometry  snappedToGrid (double hSpacing, double vSpacing, double dSpacing=0, double mSpacing=0) const 
Returns a new geometry with all points or vertices snapped to the closest point of the grid. More...  
Qgis::GeometryOperationResult  splitGeometry (const QgsCurve *curve, QVector< QgsGeometry > &newGeometries, bool preserveCircular, bool topological, QgsPointSequence &topologyTestPoints, bool splitFeature=true) 
Splits this geometry according to a given curve. More...  
Qgis::GeometryOperationResult  splitGeometry (const QgsPointSequence &splitLine, QVector< QgsGeometry > &newGeometries, bool topological, QgsPointSequence &topologyTestPoints, bool splitFeature=true, bool skipIntersectionTest=false) 
Splits this geometry according to a given line. More...  
Q_DECL_DEPRECATED Qgis::GeometryOperationResult  splitGeometry (const QVector< QgsPointXY > &splitLine, QVector< QgsGeometry > &newGeometries, bool topological, QVector< QgsPointXY > &topologyTestPoints, bool splitFeature=true) 
Splits this geometry according to a given line. More...  
double  sqrDistToVertexAt (QgsPointXY &point, int atVertex) const 
Returns the squared Cartesian distance between the given point to the given vertex index (vertex at the given position number, ring and item (first number is index 0)) More...  
QgsGeometry  squareWaves (double wavelength, double amplitude, bool strictWavelength=false) const 
Constructs square waves along the boundary of the geometry, with the specified wavelength and amplitude. More...  
QgsGeometry  squareWavesRandomized (double minimumWavelength, double maximumWavelength, double minimumAmplitude, double maximumAmplitude, unsigned long seed=0) const 
Constructs randomized square waves along the boundary of the geometry, with the specified wavelength and amplitude ranges. More...  
QgsGeometry  subdivide (int maxNodes=256, const QgsGeometryParameters ¶meters=QgsGeometryParameters()) const 
Subdivides the geometry. More...  
QgsGeometry  symDifference (const QgsGeometry &geometry, const QgsGeometryParameters ¶meters=QgsGeometryParameters()) const 
Returns a geometry representing the points making up this geometry that do not make up other. More...  
QgsGeometry  taperedBuffer (double startWidth, double endWidth, int segments) const 
Calculates a variable width buffer ("tapered buffer") for a (multi)curve geometry. More...  
bool  toggleCircularAtVertex (int atVertex) 
Converts the vertex at the given position from/to circular. More...  
bool  touches (const QgsGeometry &geometry) const 
Returns true if the geometry touches another geometry. More...  
Qgis::GeometryOperationResult  transform (const QgsCoordinateTransform &ct, Qgis::TransformDirection direction=Qgis::TransformDirection::Forward, bool transformZ=false) 
Transforms this geometry as described by the coordinate transform ct. More...  
Qgis::GeometryOperationResult  transform (const QTransform &t, double zTranslate=0.0, double zScale=1.0, double mTranslate=0.0, double mScale=1.0) 
Transforms the x and y components of the geometry using a QTransform object t. More...  
void  transformVertices (const std::function< QgsPoint(const QgsPoint &) > &transform) 
Transforms the vertices from the geometry in place, applying the transform function to every vertex. More...  
Qgis::GeometryOperationResult  translate (double dx, double dy, double dz=0.0, double dm=0.0) 
Translates this geometry by dx, dy, dz and dm. More...  
QgsGeometry  triangularWaves (double wavelength, double amplitude, bool strictWavelength=false) const 
Constructs triangular waves along the boundary of the geometry, with the specified wavelength and amplitude. More...  
QgsGeometry  triangularWavesRandomized (double minimumWavelength, double maximumWavelength, double minimumAmplitude, double maximumAmplitude, unsigned long seed=0) const 
Constructs randomized triangular waves along the boundary of the geometry, with the specified wavelength and amplitude ranges. More...  
Qgis::GeometryType  type () const 
Returns type of the geometry as a Qgis::GeometryType. More...  
QgsGeometry  unionCoverage () const 
Optimized union algorithm for polygonal inputs that are correctly noded and do not overlap. More...  
Qgis::CoverageValidityResult  validateCoverage (double gapWidth, QgsGeometry *invalidEdges=nullptr) const 
Analyze a coverage (represented as a collection of polygonal geometry with exactly matching edge geometry) to find places where the assumption of exactly matching edges is not met. More...  
void  validateGeometry (QVector< QgsGeometry::Error > &errors, Qgis::GeometryValidationEngine method=Qgis::GeometryValidationEngine::QgisInternal, Qgis::GeometryValidityFlags flags=Qgis::GeometryValidityFlags()) const 
Validates geometry and produces a list of geometry errors. More...  
QgsGeometry  variableWidthBufferByM (int segments) const 
Calculates a variable width buffer for a (multi)linestring geometry, where the width at each node is taken from the linestring m values. More...  
QgsPoint  vertexAt (int atVertex) const 
Returns coordinates of a vertex. More...  
bool  vertexIdFromVertexNr (int number, QgsVertexId &id) const 
Calculates the vertex ID from a vertex number. More...  
int  vertexNrFromVertexId (QgsVertexId id) const 
Returns the vertex number corresponding to a vertex id. More...  
QgsVertexIterator  vertices () const 
Returns a readonly, Javastyle iterator for traversal of vertices of all the geometry, including all geometry parts and rings. More...  
QgsAbstractGeometry::vertex_iterator  vertices_begin () const 
Returns STLstyle iterator pointing to the first vertex of the geometry. More...  
QgsAbstractGeometry::vertex_iterator  vertices_end () const 
Returns STLstyle iterator pointing to the imaginary vertex after the last vertex of the geometry. More...  
QgsGeometry  voronoiDiagram (const QgsGeometry &extent=QgsGeometry(), double tolerance=0.0, bool edgesOnly=false) const 
Creates a Voronoi diagram for the nodes contained within the geometry. More...  
bool  within (const QgsGeometry &geometry) const 
Returns true if the geometry is completely within another geometry. More...  
int  wkbSize (QgsAbstractGeometry::WkbFlags flags=QgsAbstractGeometry::WkbFlags()) const 
Returns the length of the QByteArray returned by asWkb() More...  
Qgis::WkbType  wkbType () const 
Returns type of the geometry as a WKB type (point / linestring / polygon etc.) More...  
Static Public Member Functions  
static QgsGeometry  collectGeometry (const QVector< QgsGeometry > &geometries) 
Creates a new multipart geometry from a list of QgsGeometry objects. More...  
static bool  compare (const QgsMultiPolygonXY &p1, const QgsMultiPolygonXY &p2, double epsilon=4 *std::numeric_limits< double >::epsilon()) 
Compares two multipolygons for equality within a specified tolerance. More...  
static bool  compare (const QgsPolygonXY &p1, const QgsPolygonXY &p2, double epsilon=4 *std::numeric_limits< double >::epsilon()) 
Compares two polygons for equality within a specified tolerance. More...  
static bool  compare (const QgsPolylineXY &p1, const QgsPolylineXY &p2, double epsilon=4 *std::numeric_limits< double >::epsilon()) 
Compares two polylines for equality within a specified tolerance. More...  
static void  convertPointList (const QgsPointSequence &input, QVector< QgsPointXY > &output) 
Downgrades a point list from QgsPoint to QgsPointXY. More...  
static void  convertPointList (const QVector< QgsPointXY > &input, QgsPointSequence &output) 
Upgrades a point list from QgsPointXY to QgsPoint. More...  
static QgsGeometryEngine *  createGeometryEngine (const QgsAbstractGeometry *geometry, double precision=0.0) 
Creates and returns a new geometry engine representing the specified geometry using precision on a grid. More...  
static Q_DECL_DEPRECATED QgsPolygonXY  createPolygonFromQPolygonF (const QPolygonF &polygon) 
Creates a QgsPolygonXYfrom a QPolygonF. More...  
static Q_DECL_DEPRECATED QgsPolylineXY  createPolylineFromQPolygonF (const QPolygonF &polygon) 
Creates a QgsPolylineXY from a QPolygonF. More...  
static QgsGeometry  createWedgeBuffer (const QgsPoint ¢er, double azimuth, double angularWidth, double outerRadius, double innerRadius=0) 
Creates a wedge shaped buffer from a center point. More...  
static QgsGeometry  fromBox3D (const QgsBox3D &box) 
Creates a new geometry from a QgsBox3D object. More...  
static QgsGeometry  fromMultiPointXY (const QgsMultiPointXY &multipoint) 
Creates a new geometry from a QgsMultiPointXY object. More...  
static QgsGeometry  fromMultiPolygonXY (const QgsMultiPolygonXY &multipoly) 
Creates a new geometry from a QgsMultiPolygonXY. More...  
static QgsGeometry  fromMultiPolylineXY (const QgsMultiPolylineXY &multiline) 
Creates a new geometry from a QgsMultiPolylineXY object. More...  
static QgsGeometry  fromPoint (const QgsPoint &point) 
Creates a new geometry from a QgsPoint object. More...  
static QgsGeometry  fromPointXY (const QgsPointXY &point) 
Creates a new geometry from a QgsPointXY object. More...  
static QgsGeometry  fromPolygonXY (const QgsPolygonXY &polygon) 
Creates a new geometry from a QgsPolygonXY. More...  
static QgsGeometry  fromPolyline (const QgsPolyline &polyline) 
Creates a new LineString geometry from a list of QgsPoint points. More...  
static QgsGeometry  fromPolylineXY (const QgsPolylineXY &polyline) 
Creates a new LineString geometry from a list of QgsPointXY points. More...  
static QgsGeometry  fromQPointF (QPointF point) 
Construct geometry from a QPointF. More...  
static QgsGeometry  fromQPolygonF (const QPolygonF &polygon) 
Construct geometry from a QPolygonF. More...  
static QgsGeometry  fromRect (const QgsRectangle &rect) 
Creates a new geometry from a QgsRectangle. More...  
static QgsGeometry  fromWkt (const QString &wkt) 
Creates a new geometry from a WKT string. More...  
static QgsGeometry  polygonize (const QVector< QgsGeometry > &geometries) 
Creates a GeometryCollection geometry containing possible polygons formed from the constituent linework of a set of geometries. More...  
static QgsGeometry  unaryUnion (const QVector< QgsGeometry > &geometries, const QgsGeometryParameters ¶meters=QgsGeometryParameters()) 
Compute the unary union on a list of geometries. More...  
Properties  
Q_GADGET bool  isNull 
Qgis::GeometryType  type 
Friends  
class  QgsInternalGeometryEngine 
A geometry is the spatial representation of a feature.
QgsGeometry acts as a generic container for geometry objects. QgsGeometry objects are implicitly shared, so making copies of geometries is inexpensive. The geometry container class can also be stored inside a QVariant object.
The actual geometry representation is stored as a QgsAbstractGeometry within the container, and can be accessed via the get() method or set using the set() method. This gives access to the underlying raw geometry primitive, such as the point, line, polygon, curve or other geometry subclasses.
Definition at line 161 of file qgsgeometry.h.
QgsGeometry::QgsGeometry  (  ) 
Constructor.
Definition at line 57 of file qgsgeometry.cpp.
QgsGeometry::QgsGeometry  (  const QgsGeometry &  other  ) 
Copy constructor will prompt a deep copy of the object.
Definition at line 79 of file qgsgeometry.cpp.

explicit 
Creates a geometry from an abstract geometry object.
Ownership of geom is transferred.
Definition at line 68 of file qgsgeometry.cpp.

explicit 
Creates a geometry from an abstract geometry object.
Ownership of geom is transferred.
Definition at line 74 of file qgsgeometry.cpp.

virtual 
Definition at line 62 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::addPart  (  const QgsGeometry &  newPart  ) 
Adds a new island polygon to a multipolygon feature.
Definition at line 999 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::addPart  (  const QgsPointSequence &  points, 
Qgis::GeometryType  geomType = Qgis::GeometryType::Unknown 

) 
Adds a new part to a the geometry.
points  points describing part to add 
geomType  default geometry type to create if no existing geometry 
Definition at line 953 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::addPart  (  const QVector< QgsPointXY > &  points, 
Qgis::GeometryType  geomType = Qgis::GeometryType::Unknown 

) 
Adds a new part to a the geometry.
points  points describing part to add 
geomType  default geometry type to create if no existing geometry 
Definition at line 946 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::addPart  (  QgsAbstractGeometry *  part, 
Qgis::GeometryType  geomType = Qgis::GeometryType::Unknown 

) 
Adds a new part to this geometry.
part  part to add (ownership is transferred) 
geomType  default geometry type to create if no existing geometry 
Definition at line 969 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::addRing  (  const QVector< QgsPointXY > &  ring  ) 
Adds a new ring to this geometry.
This makes only sense for polygon and multipolygons.
ring  The ring to be added 
Definition at line 927 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::addRing  (  QgsCurve *  ring  ) 
Adds a new ring to this geometry.
This makes only sense for polygon and multipolygons.
ring  The ring to be added 
Definition at line 933 of file qgsgeometry.cpp.
bool QgsGeometry::addTopologicalPoint  (  const QgsPoint &  point, 
double  snappingTolerance = 1e8 , 

double  segmentSearchEpsilon = 1e12 

) 
Adds a vertex to the segment which intersect point but don't already have a vertex there.
Closest segment is identified using segmentSearchEpsilon. If a vertex already exists within snappingTolearnceDistance, no additional vertex is inserted.
true
if point was added, false
otherwise Definition at line 804 of file qgsgeometry.cpp.
void QgsGeometry::adjacentVertices  (  int  atVertex, 
int &  beforeVertex,  
int &  afterVertex  
)  const 
Returns the indexes of the vertices before and after the given vertex index.
This function takes into account the following factors:
the adjacent index will be 1 (for "no adjacent vertex")
(such as in a polygon), the adjacent index will take into account the first vertex is equal to the last vertex (and will skip equal vertex positions).
Definition at line 579 of file qgsgeometry.cpp.
double QgsGeometry::angleAtVertex  (  int  vertex  )  const 
Returns the bisector angle for this geometry at the specified vertex.
vertex  vertex index to calculate bisector angle at 
Definition at line 563 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::applyDashPattern  (  const QVector< double > &  pattern, 
Qgis::DashPatternLineEndingRule  startRule = Qgis::DashPatternLineEndingRule::NoRule , 

Qgis::DashPatternLineEndingRule  endRule = Qgis::DashPatternLineEndingRule::NoRule , 

Qgis::DashPatternSizeAdjustment  adjustment = Qgis::DashPatternSizeAdjustment::ScaleBothDashAndGap , 

double  patternOffset = 0 

)  const 
Applies a dash pattern to a geometry, returning a MultiLineString geometry which is the input geometry stroked along each line/ring with the specified pattern.
The startRule and endRule options can be set to control how the dash pattern is adjusted at line endings. If a startRule or endRule is set, the adjustment option defines whether both dash and gaps, or only dash or gap sizes are adjusted to apply the rules.
The patternOffset option specifies how far along the pattern the result should start at. The offset is applied AFTER any start/end rules are applied.
Definition at line 1401 of file qgsgeometry.cpp.
double QgsGeometry::area  (  )  const 
Returns the planar, 2dimensional area of the geometry.
Definition at line 2111 of file qgsgeometry.cpp.
QVector< QgsGeometry > QgsGeometry::asGeometryCollection  (  )  const 
Returns contents of the geometry as a list of geometries.
Definition at line 3074 of file qgsgeometry.cpp.
QString QgsGeometry::asJson  (  int  precision = 17  )  const 
Exports the geometry to a GeoJSON string.
Definition at line 1595 of file qgsgeometry.cpp.

virtual 
Exports the geometry to a json object.
Definition at line 1600 of file qgsgeometry.cpp.
QgsMultiPointXY QgsGeometry::asMultiPoint  (  )  const 
Returns the contents of the geometry as a multipoint.
Any z or m values present in the geometry will be discarded.
Definition at line 1990 of file qgsgeometry.cpp.
QgsMultiPolygonXY QgsGeometry::asMultiPolygon  (  )  const 
Returns the contents of the geometry as a multipolygon.
Any z or m values present in the geometry will be discarded. If the geometry is a curved polygon type (such as a MultiSurface), it will be automatically segmentized.
Definition at line 2067 of file qgsgeometry.cpp.
QgsMultiPolylineXY QgsGeometry::asMultiPolyline  (  )  const 
Returns the contents of the geometry as a multilinestring.
Any z or m values present in the geometry will be discarded. If the geometry is a curved line type (such as a MultiCurve), it will be automatically segmentized.
Definition at line 2014 of file qgsgeometry.cpp.
QgsPointXY QgsGeometry::asPoint  (  )  const 
Returns the contents of the geometry as a 2dimensional point.
Any z or m values present in the geometry will be discarded.
Definition at line 1893 of file qgsgeometry.cpp.
QgsPolygonXY QgsGeometry::asPolygon  (  )  const 
Returns the contents of the geometry as a polygon.
Any z or m values present in the geometry will be discarded. If the geometry is a curved polygon type (such as a CurvePolygon), it will be automatically segmentized.
Definition at line 1955 of file qgsgeometry.cpp.
QgsPolylineXY QgsGeometry::asPolyline  (  )  const 
Returns the contents of the geometry as a polyline.
Any z or m values present in the geometry will be discarded. If the geometry is a curved line type (such as a CircularString), it will be automatically segmentized.
Definition at line 1909 of file qgsgeometry.cpp.
QPointF QgsGeometry::asQPointF  (  )  const 
Returns contents of the geometry as a QPointF if wkbType is WKBPoint, otherwise returns a null QPointF.
Definition at line 3100 of file qgsgeometry.cpp.
QPolygonF QgsGeometry::asQPolygonF  (  )  const 
Returns contents of the geometry as a QPolygonF.
If geometry is a linestring, then the result will be an open QPolygonF. If the geometry is a polygon, then the result will be a closed QPolygonF of the geometry's exterior ring.
If the geometry is a multipart geometry, then only the first part will be considered when converting to a QPolygonF.
Definition at line 3106 of file qgsgeometry.cpp.
QByteArray QgsGeometry::asWkb  (  QgsAbstractGeometry::WkbFlags  flags = QgsAbstractGeometry::WkbFlags()  )  const 
Export the geometry to WKB.
The optional flags argument specifies flags controlling WKB export behavior (since QGIS 3.14).
Definition at line 3069 of file qgsgeometry.cpp.
QString QgsGeometry::asWkt  (  int  precision = 17  )  const 
Exports the geometry to WKT.
true
in case of success and false
else Definition at line 1586 of file qgsgeometry.cpp.
int QgsGeometry::avoidIntersections  (  const QList< QgsVectorLayer * > &  avoidIntersectionsLayers, 
const QHash< QgsVectorLayer *, QSet< QgsFeatureId > > &  ignoreFeatures = ( QHash<QgsVectorLayer *, QSet<QgsFeatureId> >() ) 

) 
Modifies geometry to avoid intersections with the layers specified in project properties.
avoidIntersectionsLayers  list of layers to check for intersections 
ignoreFeatures  possibility to give a list of features where intersections should be ignored (not available in Python bindings) 
Definition at line 3185 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::avoidIntersectionsV2  (  const QList< QgsVectorLayer * > &  avoidIntersectionsLayers, 
const QHash< QgsVectorLayer *, QSet< QgsFeatureId > > &  ignoreFeatures = ( QHash<QgsVectorLayer *, QSet<QgsFeatureId> >() ) 

) 
Modifies geometry to avoid intersections with the layers specified in project properties.
avoidIntersectionsLayers  list of layers to check for intersections 
ignoreFeatures  possibility to give a list of features where intersections should be ignored (not available in Python bindings) 
Definition at line 3156 of file qgsgeometry.cpp.
QgsRectangle QgsGeometry::boundingBox  (  )  const 
Returns the bounding box of the geometry.
Definition at line 1240 of file qgsgeometry.cpp.
QgsBox3D QgsGeometry::boundingBox3D  (  )  const 
Returns the 3D bounding box of the geometry.
Definition at line 1249 of file qgsgeometry.cpp.
bool QgsGeometry::boundingBoxIntersects  (  const QgsGeometry &  geometry  )  const 
Returns true
if the bounding box of this geometry intersects with the bounding box of another geometry.
Since this test only considers the bounding box of the geometries, is is very fast to calculate and handles invalid geometries.
Definition at line 1472 of file qgsgeometry.cpp.
bool QgsGeometry::boundingBoxIntersects  (  const QgsRectangle &  rectangle  )  const 
Returns true
if the bounding box of this geometry intersects with a rectangle.
Since this test only considers the bounding box of the geometry, is is very fast to calculate and handles invalid geometries.
Definition at line 1462 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::buffer  (  double  distance, 
int  segments  
)  const 
Returns a buffer region around this geometry having the given width and with a specified number of segments used to approximate curves.
Definition at line 2281 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::buffer  (  double  distance, 
int  segments,  
Qgis::EndCapStyle  endCapStyle,  
Qgis::JoinStyle  joinStyle,  
double  miterLimit  
)  const 
Returns a buffer region around the geometry, with additional style options.
distance  buffer distance 
segments  for round joins, number of segments to approximate quartercircle 
endCapStyle  end cap style 
joinStyle  join style for corners in geometry 
miterLimit  limit on the miter ratio used for very sharp corners (JoinStyleMiter only) 
Definition at line 2300 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::centroid  (  )  const 
Returns the center of mass of a geometry.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Definition at line 2515 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::clipped  (  const QgsRectangle &  rectangle  ) 
Clips the geometry using the specified rectangle.
Performs a fast, nonrobust intersection between the geometry and a rectangle. The returned geometry may be invalid.
Definition at line 3542 of file qgsgeometry.cpp.
double QgsGeometry::closestSegmentWithContext  (  const QgsPointXY &  point, 
QgsPointXY &  minDistPoint,  
int &  nextVertexIndex,  
int *  leftOrRightOfSegment = nullptr , 

double  epsilon = DEFAULT_SEGMENT_EPSILON 

)  const 
Searches for the closest segment of geometry to the given point.
point  Specifies the point for search 
minDistPoint  Receives the nearest point on the segment 
nextVertexIndex  Receives index of the next vertex after the closest segment. The vertex before the closest segment is always nextVertexIndex  1 
leftOrRightOfSegment  Out: Returns if the point is located on the left or right side of the geometry ( < 0 means left, > 0 means right, 0 indicates that the test was unsuccessful, e.g. for a point exactly on the line) 
epsilon  epsilon for segment snapping 
Definition at line 903 of file qgsgeometry.cpp.
QgsPointXY QgsGeometry::closestVertex  (  const QgsPointXY &  point, 
int &  closestVertexIndex,  
int &  previousVertexIndex,  
int &  nextVertexIndex,  
double &  sqrDist  
)  const 
Returns the vertex closest to the given point, the corresponding vertex index, squared distance snap point / target point and the indices of the vertices before and after the closest vertex.
point  point to search for 
closestVertexIndex  will be set to the vertex index of the closest found vertex 
previousVertexIndex  will be set to the vertex index of the previous vertex from the closest one. Will be set to 1 if not present. 
nextVertexIndex  will be set to the vertex index of the next vertex after the closest one. Will be set to 1 if not present. 
sqrDist  will be set to the square distance between the closest vertex and the specified point 
Definition at line 519 of file qgsgeometry.cpp.
double QgsGeometry::closestVertexWithContext  (  const QgsPointXY &  point, 
int &  atVertex  
)  const 
Searches for the closest vertex in this geometry to the given point.
point  Specifiest the point for search 
atVertex  Receives index of the closest vertex 
Definition at line 887 of file qgsgeometry.cpp.
QVector< QgsGeometry > QgsGeometry::coerceToType  (  Qgis::WkbType  type, 
double  defaultZ = 0 , 

double  defaultM = 0 

)  const 
Attempts to coerce this geometry into the specified destination type.
This method will do anything possible to force the current geometry into the specified type. E.g.
Since QGIS 3.24, the parameters defaultZ and defaultM control the dimension value added when promoting geometries to Z, M or ZM versions. By default 0.0 is used for Z and M.
Definition at line 1610 of file qgsgeometry.cpp.

static 
Creates a new multipart geometry from a list of QgsGeometry objects.
Definition at line 381 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::combine  (  const QgsGeometry &  geometry, 
const QgsGeometryParameters &  parameters = QgsGeometryParameters() 

)  const 
Returns a geometry representing all the points in this geometry and other (a union geometry operation).
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Since QGIS 3.28 the optional parameters argument can be used to specify parameters which control the union results.
Definition at line 2953 of file qgsgeometry.cpp.

static 
Compares two multipolygons for equality within a specified tolerance.
p1  first multipolygon 
p2  second multipolygon 
epsilon  maximum difference for coordinates between the multipolygons 
true
if multipolygons have the same number of polygons, the polygons have the same number of rings, and each ring has the same number of points and all points are equal within the specified tolerance Definition at line 3852 of file qgsgeometry.cpp.

static 
Compares two polygons for equality within a specified tolerance.
p1  first polygon 
p2  second polygon 
epsilon  maximum difference for coordinates between the polygons 
true
if polygons have the same number of rings, and each ring has the same number of points and all points are equal within the specified tolerance Definition at line 3838 of file qgsgeometry.cpp.

static 
Compares two polylines for equality within a specified tolerance.
p1  first polyline 
p2  second polyline 
epsilon  maximum difference for coordinates between the polylines 
true
if polylines have the same number of points and all points are equal within the specified tolerance Definition at line 3825 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::concaveHull  (  double  targetPercent, 
bool  allowHoles = false 

)  const 
Returns a possibly concave polygon that contains all the points in the geometry.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
QgsNotSupportedException  on QGIS builds based on GEOS 3.10 or earlier. 
Definition at line 2637 of file qgsgeometry.cpp.
QgsAbstractGeometry::const_part_iterator QgsGeometry::const_parts_begin  (  )  const 
Returns STLstyle const iterator pointing to the first part of the geometry.
This method avoids a detach and is more efficient then parts_begin() for read only iteration.
Definition at line 2250 of file qgsgeometry.cpp.
QgsAbstractGeometry::const_part_iterator QgsGeometry::const_parts_end  (  )  const 
Returns STLstyle iterator pointing to the imaginary part after the last part of the geometry.
This method avoids a detach and is more efficient then parts_end() for read only iteration.
Definition at line 2257 of file qgsgeometry.cpp.
const QgsAbstractGeometry * QgsGeometry::constGet  (  )  const 
Returns a nonmodifiable (const) reference to the underlying abstract geometry primitive.
This is much faster then calling the nonconst get() method.
Definition at line 124 of file qgsgeometry.cpp.
QgsGeometryConstPartIterator QgsGeometry::constParts  (  )  const 
Returns Javastyle iterator for traversal of parts of the geometry.
This iterator returns readonly references to parts and cannot be used to modify the parts.
Unlike parts(), this method does not force a detach and is more efficient if readonly iteration only is required.
Definition at line 2273 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::constrainedDelaunayTriangulation  (  )  const 
Returns a constrained Delaunay triangulation for the vertices of the geometry.
An empty geometry will be returned if the triangulation could not be calculated.
This method requires a QGIS build based on GEOS 3.11 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.10 or earlier. 
Definition at line 2683 of file qgsgeometry.cpp.
bool QgsGeometry::contains  (  const QgsGeometry &  geometry  )  const 
Returns true
if the geometry completely contains another geometry.
Definition at line 1495 of file qgsgeometry.cpp.
bool QgsGeometry::contains  (  const QgsPointXY *  p  )  const 
Returns true
if the geometry contains the point p.
Definition at line 1482 of file qgsgeometry.cpp.
bool QgsGeometry::convertGeometryCollectionToSubclass  (  Qgis::GeometryType  geomType  ) 
Converts geometry collection to a the desired geometry type subclass (multipoint, multilinestring or multipolygon).
Child geometries of different type are filtered out. Does nothing the geometry is not a geometry collection. May leave the geometry empty if none of the child geometries match the desired type.
true
in case of success and false
else Definition at line 1856 of file qgsgeometry.cpp.

static 
Downgrades a point list from QgsPoint to QgsPointXY.
input  list of QgsPoint objects to be downgraded 
output  destination for list of points converted to QgsPointXY 
Definition at line 3723 of file qgsgeometry.cpp.

static 
Upgrades a point list from QgsPointXY to QgsPoint.
input  list of QgsPointXY objects to be upgraded 
output  destination for list of points converted to QgsPoint 
Definition at line 3714 of file qgsgeometry.cpp.
bool QgsGeometry::convertToCurvedMultiType  (  ) 
Converts a geometry into a multitype geometry of curve kind (when there is a corresponding curve type).
e.g. a polygon into a multisurface geometry with one polygon, a multipolygon into a multisurface, a linestring into a multicurve geometry with one linestring, or a multilinestring into a multicurve. If it is already a multipart curve geometry, it will return true
and not change the geometry. It will also return true
and do nothing if the current geometry is a multipoint or a geometry collection. A single point will be transformed to a multipoint.
true
in case of success and false
elseDefinition at line 1788 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::convertToCurves  (  double  distanceTolerance = 1e8 , 
double  angleTolerance = 1e8 

)  const 
Attempts to convert a noncurved geometry into a curved geometry type (e.g.
LineString to CompoundCurve, Polygon to CurvePolygon).
The distanceTolerance specifies the maximum deviation allowed between the original location of vertices and where they would fall on the candidate curved geometry.
This method only consider a segments as suitable for replacing with an arc if the points are all regularly spaced on the candidate arc. The pointSpacingAngleTolerance parameter specifies the maximum angular deviation (in radians) allowed when testing for regular point spacing.
Definition at line 2508 of file qgsgeometry.cpp.
bool QgsGeometry::convertToMultiType  (  ) 
Converts single type geometry into multitype geometry e.g.
a polygon into a multipolygon geometry with one polygon If it is already a multipart geometry, it will return true
and not change the geometry.
true
in case of success and false
else Definition at line 1756 of file qgsgeometry.cpp.
bool QgsGeometry::convertToSingleType  (  ) 
Converts multi type geometry into single type geometry e.g.
a multipolygon into a polygon geometry. Only the first part of the multi geometry will be retained. If it is already a single part geometry, it will return true
and not change the geometry.
true
in case of success and false
else Definition at line 1834 of file qgsgeometry.cpp.
void QgsGeometry::convertToStraightSegment  (  double  tolerance = M_PI / 180. , 
QgsAbstractGeometry::SegmentationToleranceType  toleranceType = QgsAbstractGeometry::MaximumAngle 

) 
Converts the geometry to straight line segments, if it is a curved geometry type.
tolerance  segmentation tolerance 
toleranceType  maximum segmentation angle or maximum difference between approximation and curve 
Definition at line 3488 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::convertToType  (  Qgis::GeometryType  destType, 
bool  destMultipart = false 

)  const 
Try to convert the geometry to the requested type.
destType  the geometry type to be converted to 
destMultipart  determines if the output geometry will be multipart or not 
nullptr
if the conversion fails.Definition at line 1738 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::convexHull  (  )  const 
Returns the smallest convex polygon that contains all the points in the geometry.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Definition at line 2619 of file qgsgeometry.cpp.

static 
Creates and returns a new geometry engine representing the specified geometry using precision on a grid.
The precision argument was added in 3.36.
A geometry engine is a lowlevel representation of a QgsAbstractGeometry object, optimised for use with external geometry libraries such as GEOS.
QgsGeometryEngine objects provide a mechanism for optimized evaluation of geometric algorithms, including spatial relationships between geometries and operations such as buffers or clipping. QgsGeometryEngine is recommended for use in any performance critical code instead of directly using the equivalent QgsGeometry methods such as QgsGeometry::intersects().
Many methods available in the QgsGeometryEngine class can benefit from prepreparing geometries. For instance, whenever a large number of spatial relationships will be tested (such as calling intersects(), within(), etc) then the geometry should first be prepared by calling prepareGeometry() before performing the tests.
QgsGeometryEngine operations are backed by the GEOS library (https://trac.osgeo.org/geos/).
Definition at line 4353 of file qgsgeometry.cpp.

static 
Creates a QgsPolygonXYfrom a QPolygonF.
polygon  source polygon 
Definition at line 3805 of file qgsgeometry.cpp.

static 
Creates a QgsPolylineXY from a QPolygonF.
polygon  source polygon 
Definition at line 3814 of file qgsgeometry.cpp.

static 
Creates a wedge shaped buffer from a center point.
The azimuth gives the angle (in degrees) for the middle of the wedge to point. The buffer width (in degrees) is specified by the angularWidth parameter. Note that the wedge will extend to half of the angularWidth either side of the azimuth direction.
The outer radius of the buffer is specified via outerRadius, and optionally an innerRadius can also be specified.
The returned geometry will be a CurvePolygon geometry containing circular strings. It may need to be segmentized to convert to a standard Polygon geometry.
Definition at line 410 of file qgsgeometry.cpp.
bool QgsGeometry::crosses  (  const QgsGeometry &  geometry  )  const 
Returns true
if the geometry crosses another geometry.
Definition at line 1574 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::delaunayTriangulation  (  double  tolerance = 0.0 , 
bool  edgesOnly = false 

)  const 
Returns the Delaunay triangulation for the vertices of the geometry.
The tolerance parameter specifies an optional snapping tolerance which can be used to improve the robustness of the triangulation. If edgesOnly is true
than line string boundary geometries will be returned instead of polygons. An empty geometry will be returned if the diagram could not be calculated.
Definition at line 2669 of file qgsgeometry.cpp.
bool QgsGeometry::deletePart  (  int  partNum  ) 
Deletes part identified by the part number.
true
on success Definition at line 3138 of file qgsgeometry.cpp.
bool QgsGeometry::deleteRing  (  int  ringNum, 
int  partNum = 0 

) 
Deletes a ring in polygon or multipolygon.
Ring 0 is outer ring and can't be deleted.
true
on success Definition at line 3126 of file qgsgeometry.cpp.
bool QgsGeometry::deleteVertex  (  int  atVertex  ) 
Deletes the vertex at the given position number and item (first number is index 0)
false
if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point), or if the number of remaining vertices in the linestring would be less than two. It is up to the caller to distinguish between these error conditions. (Or maybe we add another method to this object to help make the distinction?) Definition at line 636 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::densifyByCount  (  int  extraNodesPerSegment  )  const 
Returns a copy of the geometry which has been densified by adding the specified number of extra nodes within each segment of the geometry.
If the geometry has z or m values present then these will be linearly interpolated at the added nodes. Curved geometry types are automatically segmentized by this routine.
Definition at line 2494 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::densifyByDistance  (  double  distance  )  const 
Densifies the geometry by adding regularly placed extra nodes inside each segment so that the maximum distance between any two nodes does not exceed the specified distance.
E.g. specifying a distance 3 would cause the segment [0 0] > [10 0] to be converted to [0 0] > [2.5 0] > [5 0] > [7.5 0] > [10 0], since 3 extra nodes are required on the segment and spacing these at 2.5 increments allows them to be evenly spaced over the segment. If the geometry has z or m values present then these will be linearly interpolated at the added nodes. Curved geometry types are automatically segmentized by this routine.
Definition at line 2501 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::difference  (  const QgsGeometry &  geometry, 
const QgsGeometryParameters &  parameters = QgsGeometryParameters() 

)  const 
Returns a geometry representing the points making up this geometry that do not make up other.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Since QGIS 3.28 the optional parameters argument can be used to specify parameters which control the difference results.
Definition at line 2992 of file qgsgeometry.cpp.
bool QgsGeometry::disjoint  (  const QgsGeometry &  geometry  )  const 
Returns true
if the geometry is disjoint of another geometry.
Definition at line 1507 of file qgsgeometry.cpp.
double QgsGeometry::distance  (  const QgsGeometry &  geom  )  const 
Returns the minimum distance between this geometry and another geometry.
Will return a negative value if either geometry is empty or null.
Definition at line 2146 of file qgsgeometry.cpp.
double QgsGeometry::distanceToVertex  (  int  vertex  )  const 
Returns the distance along this geometry from its first vertex to the specified vertex.
vertex  vertex index to calculate distance to 
Definition at line 547 of file qgsgeometry.cpp.
void QgsGeometry::draw  (  QPainter &  p  )  const 
Draws the geometry onto a QPainter.
p  destination QPainter 
Definition at line 3561 of file qgsgeometry.cpp.
bool QgsGeometry::equals  (  const QgsGeometry &  geometry  )  const 
Test if this geometry is exactly equal to another geometry.
This is a strict equality check, where the underlying geometries must have exactly the same type, component vertices and vertex order.
Calling this method is dramatically faster than the topological equality test performed by isGeosEqual().
false
.Definition at line 1519 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::extendLine  (  double  startDistance, 
double  endDistance  
)  const 
Extends a (multi)line geometry by extrapolating out the start or end of the line by a specified distance.
Lines are extended using the bearing of the first or last segment in the line.
Definition at line 2435 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::extrude  (  double  x, 
double  y  
) 
Returns an extruded version of this geometry.
Definition at line 3032 of file qgsgeometry.cpp.
void QgsGeometry::filterVertices  (  const std::function< bool(const QgsPoint &) > &  filter  ) 
Filters the vertices from the geometry in place, removing any which do not return true
for the filter function check.
Has no effect when called on a single point geometry.
Depending on the filter used, this may result in an invalid geometry.
Definition at line 3694 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::forcePolygonClockwise  (  )  const 
Forces geometries to respect the exterior ring is clockwise, interior rings are counterclockwise convention.
This convention is used primarily by ESRI software.
Definition at line 3264 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::forcePolygonCounterClockwise  (  )  const 
Forces geometries to respect the exterior ring is counterclockwise, interior rings are clockwise convention.
This convention matches the OGC Simple Features specification.
Definition at line 3306 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::forceRHR  (  )  const 
Forces geometries to respect the RightHandRule, in which the area that is bounded by a polygon is to the right of the boundary.
In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counterclockwise direction.
Definition at line 3231 of file qgsgeometry.cpp.
double QgsGeometry::frechetDistance  (  const QgsGeometry &  geom  )  const 
Returns the FrÃ©chet distance between this geometry and geom, restricted to discrete points for both geometries.
The FrÃ©chet distance is a measure of similarity between curves that takes into account the location and ordering of the points along the curves. Therefore it is often better than the Hausdorff distance.
In case of error 1 will be returned.
This method requires a QGIS build based on GEOS 3.7 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.6 or earlier. 
Definition at line 2189 of file qgsgeometry.cpp.
double QgsGeometry::frechetDistanceDensify  (  const QgsGeometry &  geom, 
double  densifyFraction  
)  const 
Returns the FrÃ©chet distance between this geometry and geom, restricted to discrete points for both geometries.
The FrÃ©chet distance is a measure of similarity between curves that takes into account the location and ordering of the points along the curves. Therefore it is often better than the Hausdorff distance.
This function accepts a densifyFraction argument. The function performs a segment densification before computing the discrete FrÃ©chet distance. The densifyFraction parameter sets the fraction by which to densify each segment. Each segment will be split into a number of equallength subsegments, whose fraction of the total length is closest to the given fraction.
This method can be used when the default approximation provided by frechetDistance() is not sufficient. Decreasing the densifyFraction parameter will make the distance returned approach the true FrÃ©chet distance for the geometries.
This method requires a QGIS build based on GEOS 3.7 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.6 or earlier. 
Definition at line 2201 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsBox3D object.
Definition at line 255 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsMultiPointXY object.
Definition at line 204 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsMultiPolygonXY.
Definition at line 224 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsMultiPolylineXY object.
Definition at line 214 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsPoint object.
Definition at line 174 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsPointXY object.
Definition at line 164 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsPolygonXY.
Definition at line 194 of file qgsgeometry.cpp.

static 
Creates a new LineString geometry from a list of QgsPoint points.
This method will respect any Z or M dimensions present in the input points. E.g. if input points are PointZ type, the resultant linestring will be a LineStringZ type.
Definition at line 189 of file qgsgeometry.cpp.

static 
Creates a new LineString geometry from a list of QgsPointXY points.
Using fromPolyline() is preferred, as fromPolyline() is more efficient and will respect any Z or M dimensions present in the input points.
Definition at line 179 of file qgsgeometry.cpp.

static 
Construct geometry from a QPointF.
point  source QPointF 
Definition at line 3784 of file qgsgeometry.cpp.

static 
Construct geometry from a QPolygonF.
If the polygon is closed than the resultant geometry will be a polygon, if it is open than the geometry will be a polyline.
polygon  source QPolygonF 
Definition at line 3789 of file qgsgeometry.cpp.

static 
Creates a new geometry from a QgsRectangle.
Definition at line 234 of file qgsgeometry.cpp.
void QgsGeometry::fromWkb  (  const QByteArray &  wkb  ) 
Set the geometry, feeding in the buffer containing OGC WellKnown Binary.
Definition at line 473 of file qgsgeometry.cpp.
void QgsGeometry::fromWkb  (  unsigned char *  wkb, 
int  length  
) 
Set the geometry, feeding in the buffer containing OGC WellKnown Binary and the buffer's length.
This class will take ownership of the buffer.
Definition at line 466 of file qgsgeometry.cpp.

static 
Creates a new geometry from a WKT string.
QgsAbstractGeometry * QgsGeometry::get  (  ) 
Returns a modifiable (nonconst) reference to the underlying abstract geometry primitive.
This method can be slow to call, as it may trigger a detachment of the geometry and a deep copy. Where possible, use constGet() instead.
Definition at line 129 of file qgsgeometry.cpp.
double QgsGeometry::hausdorffDistance  (  const QgsGeometry &  geom  )  const 
Returns the Hausdorff distance between this geometry and geom.
This is basically a measure of how similar or dissimilar 2 geometries are.
This algorithm is an approximation to the standard Hausdorff distance. This approximation is exact or close enough for a large subset of useful cases. Examples of these are:
If the default approximate provided by this method is insufficient, use hausdorffDistanceDensify() instead.
In case of error 1 will be returned.
Definition at line 2164 of file qgsgeometry.cpp.
double QgsGeometry::hausdorffDistanceDensify  (  const QgsGeometry &  geom, 
double  densifyFraction  
)  const 
Returns the Hausdorff distance between this geometry and geom.
This is basically a measure of how similar or dissimilar 2 geometries are.
This function accepts a densifyFraction argument. The function performs a segment densification before computing the discrete Hausdorff distance. The densifyFraction parameter sets the fraction by which to densify each segment. Each segment will be split into a number of equallength subsegments, whose fraction of the total length is closest to the given fraction.
This method can be used when the default approximation provided by hausdorffDistance() is not sufficient. Decreasing the densifyFraction parameter will make the distance returned approach the true Hausdorff distance for the geometries.
In case of error 1 will be returned.
Definition at line 2176 of file qgsgeometry.cpp.
bool QgsGeometry::insertVertex  (  const QgsPoint &  point, 
int  beforeVertex  
) 
Insert a new vertex before the given vertex index, ring and item (first number is index 0) If the requested vertex number (beforeVertex.back()) is greater than the last actual vertex on the requested ring and item, it is assumed that the vertex is to be appended instead of inserted.
Returns false
if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point). It is up to the caller to distinguish between these error conditions. (Or maybe we add another method to this object to help make the distinction?)
Definition at line 778 of file qgsgeometry.cpp.
bool QgsGeometry::insertVertex  (  double  x, 
double  y,  
int  beforeVertex  
) 
Insert a new vertex before the given vertex index, ring and item (first number is index 0) If the requested vertex number (beforeVertex.back()) is greater than the last actual vertex on the requested ring and item, it is assumed that the vertex is to be appended instead of inserted.
Returns false
if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point). It is up to the caller to distinguish between these error conditions. (Or maybe we add another method to this object to help make the distinction?)
Definition at line 752 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::interpolate  (  double  distance  )  const 
Returns an interpolated point on the geometry at the specified distance.
If the original geometry is a polygon type, the boundary of the polygon will be used during interpolation. If the original geometry is a point type, a null geometry will be returned.
If z or m values are present, the output z and m will be interpolated using the existing vertices' z or m values.
If the input is a NULL geometry, the output will also be a NULL geometry.
Definition at line 2804 of file qgsgeometry.cpp.
double QgsGeometry::interpolateAngle  (  double  distance  )  const 
Returns the angle parallel to the linestring or polygon boundary at the specified distance along the geometry.
Angles are in radians, clockwise from north. If the distance coincides precisely at a node then the average angle from the segment either side of the node is returned.
distance  distance along geometry 
Definition at line 2873 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::intersection  (  const QgsGeometry &  geometry, 
const QgsGeometryParameters &  parameters = QgsGeometryParameters() 

)  const 
Returns a geometry representing the points shared by this geometry and other.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Since QGIS 3.28 the optional parameters argument can be used to specify parameters which control the intersection results.
Definition at line 2931 of file qgsgeometry.cpp.
bool QgsGeometry::intersects  (  const QgsGeometry &  geometry  )  const 
Returns true
if this geometry exactly intersects with another geometry.
This test is exact and can be slow for complex geometries.
The GEOS library is used to perform the intersection test. Geometries which are not valid may return incorrect results.
Definition at line 1450 of file qgsgeometry.cpp.
bool QgsGeometry::intersects  (  const QgsRectangle &  rectangle  )  const 
Returns true
if this geometry exactly intersects with a rectangle.
This test is exact and can be slow for complex geometries.
The GEOS library is used to perform the intersection test. Geometries which are not valid may return incorrect results.
Definition at line 1425 of file qgsgeometry.cpp.
bool QgsGeometry::isAxisParallelRectangle  (  double  maximumDeviation, 
bool  simpleRectanglesOnly = false 

)  const 
Returns true
if the geometry is a polygon that is almost an axisparallel rectangle.
The maximumDeviation argument specifes the maximum angle (in degrees) that the polygon edges are allowed to deviate from axis parallel lines.
By default the check will permit polygons with more than 4 edges, so long as the overall shape of the polygon is an axisparallel rectangle (i.e. it is tolerant to rectangles with additional vertices added along the rectangle sides). If simpleRectanglesOnly is set to true
then the method will only return true
if the geometry is a simple rectangle consisting of 4 edges.
Definition at line 3420 of file qgsgeometry.cpp.
bool QgsGeometry::isEmpty  (  )  const 
Returns true
if the geometry is empty (eg a linestring with no vertices, or a collection with no geometries).
A null geometry will always return true
for isEmpty().
Definition at line 501 of file qgsgeometry.cpp.
bool QgsGeometry::isGeosEqual  (  const QgsGeometry &  g  )  const 
Compares the geometry with another geometry using GEOS.
This method performs a slow, topological check, where geometries are considered equal if all of the their component edges overlap. E.g. lines with the same vertex locations but opposite direction will be considered equal by this method.
Consider using the much faster, stricter equality test performed by equals() instead.
false
.Definition at line 3429 of file qgsgeometry.cpp.
bool QgsGeometry::isGeosValid  (  Qgis::GeometryValidityFlags  flags = Qgis::GeometryValidityFlags()  )  const 
Checks validity of the geometry using GEOS.
The flags parameter indicates optional flags which control the type of validity checking performed.
Definition at line 3400 of file qgsgeometry.cpp.
bool QgsGeometry::isMultipart  (  )  const 
Returns true
if WKB of the geometry is of WKBMulti* type.
Definition at line 511 of file qgsgeometry.cpp.
bool QgsGeometry::isNull  (  )  const 
Returns true
if the geometry is null (ie, contains no underlying geometry accessible via get() or constGet() ).
Definition at line 145 of file qgsgeometry.cpp.

inline 
Returns True if the Polygon is clockwise.
Definition at line 2646 of file qgsgeometry.h.

inline 
Returns True if the Polygon is counterclockwise.
Definition at line 2631 of file qgsgeometry.h.
bool QgsGeometry::isSimple  (  )  const 
Determines whether the geometry is simple (according to OGC definition), i.e.
it has no anomalous geometric points, such as selfintersection or selftangency. Uses GEOS library for the test.
Definition at line 3410 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::largestEmptyCircle  (  double  tolerance, 
const QgsGeometry &  boundary = QgsGeometry() 

)  const 
Constructs the Largest Empty Circle for a set of obstacle geometries, up to a specified tolerance.
The Largest Empty Circle is the largest circle which has its center in the convex hull of the obstacles (the boundary), and whose interior does not intersect with any obstacle. The circle center is the point in the interior of the boundary which has the farthest distance from the obstacles (up to tolerance). The circle is determined by the center point and a point lying on an obstacle indicating the circle radius. The implementation uses a successiveapproximation technique over a grid of square cells covering the obstacles and boundary. The grid is refined using a branchandbound algorithm. Point containment and distance are computed in a performant way by using spatial indexes. Returns a twopoint linestring, with one point at the center of the inscribed circle and the other on the boundary of the inscribed circle.
This method requires QGIS builds based on GEOS 3.9 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.8 or earlier. 
Definition at line 2561 of file qgsgeometry.cpp.
QString QgsGeometry::lastError  (  )  const 
Returns an error string referring to the last error encountered either when this geometry was created or when an operation was performed on the geometry.
Definition at line 3689 of file qgsgeometry.cpp.
double QgsGeometry::length  (  )  const 
Returns the planar, 2dimensional length of geometry.
If the geometry is a polygon geometry then the perimeter of the polygon will be returned.
Definition at line 2121 of file qgsgeometry.cpp.
double QgsGeometry::lineLocatePoint  (  const QgsGeometry &  point  )  const 
Returns a distance representing the location along this linestring of the closest point on this linestring geometry to the specified point.
Ie, the returned value indicates how far along this linestring you need to traverse to get to the closest location where this linestring comes to the specified point.
point  point to seek proximity to 
Definition at line 2854 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::makeDifference  (  const QgsGeometry &  other  )  const 
Returns the geometry formed by modifying this geometry such that it does not intersect the other geometry.
other  geometry that should not be intersect 
Definition at line 1219 of file qgsgeometry.cpp.
int QgsGeometry::makeDifferenceInPlace  (  const QgsGeometry &  other  ) 
Changes this geometry such that it does not intersect the other geometry.
other  geometry that should not be intersect 
Definition at line 1199 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::makeValid  (  Qgis::MakeValidMethod  method = Qgis::MakeValidMethod::Linework , 
bool  keepCollapsed = false 

)  const 
Attempts to make an invalid geometry valid without losing vertices.
Alreadyvalid geometries are returned without further intervention. In case of full or partial dimensional collapses, the output geometry may be a collection of lowertoequal dimension geometries or a geometry of lower dimension. Single polygons may become multigeometries in case of selfintersections. It preserves Z values, but M values will be dropped.
If an error was encountered during the process, more information can be retrieved by calling lastError() on the returned geometry.
The method and keepCollapsed arguments are available since QGIS 3.28. They require builds based on GEOS 3.10 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.9 or earlier when the method is not Qgis::MakeValidMethod::Linework or the keepCollapsed option is set. 
Definition at line 3217 of file qgsgeometry.cpp.
void QgsGeometry::mapToPixel  (  const QgsMapToPixel &  mtp  ) 
Transforms the geometry from map units to pixels in place.
mtp  map to pixel transform 
Definition at line 3533 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::mergeLines  (  )  const 
Merges any connected lines in a LineString/MultiLineString geometry and converts them to single line strings.
Definition at line 2972 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::minimalEnclosingCircle  (  QgsPointXY &  center, 
double &  radius,  
unsigned int  segments = 36 

)  const 
Returns the minimal enclosing circle for the geometry.
center  Center of the minimal enclosing circle returneds 
radius  Radius of the minimal enclosing circle returned 
segments  Number of segments used to segment geometry. 
Definition at line 1323 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::minimalEnclosingCircle  (  unsigned int  segments = 36  )  const 
Returns the minimal enclosing circle for the geometry.
segments  Number of segments used to segment geometry. 
Definition at line 1350 of file qgsgeometry.cpp.
double QgsGeometry::minimumClearance  (  )  const 
Computes the minimum clearance of a geometry.
The minimum clearance is the smallest amount by which a vertex could be moved to produce an invalid polygon, a nonsimple linestring, or a multipoint with repeated points. If a geometry has a minimum clearance of 'eps', it can be said that:
If the minimum clearance cannot be defined for a geometry (such as with a single point, or a multipoint whose points are identical) a value of infinity will be returned.
If an error occurs while calculating the clearance NaN will be returned.
This method requires a QGIS build based on GEOS 3.6 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.5 or earlier. 
Definition at line 2591 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::minimumClearanceLine  (  )  const 
Returns a LineString whose endpoints define the minimum clearance of a geometry.
If the geometry has no minimum clearance, an empty LineString will be returned.
This method requires a QGIS build based on GEOS 3.6 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.5 or earlier. 
Definition at line 2604 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::minimumWidth  (  )  const 
Returns a linestring geometry which represents the minimum diameter of the geometry.
The minimum diameter is defined to be the width of the smallest band that contains the geometry, where a band is a strip of the plane defined by two parallel lines. This can be thought of as the smallest hole that the geometry can be moved through, with a single rotation.
This method requires a QGIS build based on GEOS 3.6 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.5 or earlier. 
Definition at line 2576 of file qgsgeometry.cpp.
bool QgsGeometry::moveVertex  (  const QgsPoint &  p, 
int  atVertex  
) 
Moves the vertex at the given position number and item (first number is index 0) to the given coordinates.
Returns false
if atVertex does not correspond to a valid vertex on this geometry
Definition at line 618 of file qgsgeometry.cpp.
bool QgsGeometry::moveVertex  (  double  x, 
double  y,  
int  atVertex  
) 
Moves the vertex at the given position number and item (first number is index 0) to the given coordinates.
Returns false
if atVertex does not correspond to a valid vertex on this geometry
Definition at line 600 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::nearestPoint  (  const QgsGeometry &  other  )  const 
Returns the nearest (closest) point on this geometry to another geometry.
Definition at line 857 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::node  (  )  const 
Returns a (Multi)LineString representing the fully noded version of a collection of linestrings.
The noding preserves all of the input nodes, and introduces the least possible number of new nodes. The resulting linework is dissolved (duplicate lines are removed).
The input geometry type should be a (Multi)LineString.
Definition at line 2749 of file qgsgeometry.cpp.
void QgsGeometry::normalize  (  ) 
Reorganizes the geometry into a normalized form (or "canonical" form).
Polygon rings will be rearranged so that their starting vertex is the lower left and ring orientation follows the right hand rule, collections are ordered by geometry type, and other normalization techniques are applied. The resultant geometry will be geometrically equivalent to the original geometry.
Definition at line 3389 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::offsetCurve  (  double  distance, 
int  segments,  
Qgis::JoinStyle  joinStyle,  
double  miterLimit  
)  const 
Returns an offset line at a given distance and side from an input line.
distance  buffer distance 
segments  for round joins, number of segments to approximate quartercircle 
joinStyle  join style for corners in geometry 
miterLimit  limit on the miter ratio used for very sharp corners (JoinStyleMiter only) 
Definition at line 2319 of file qgsgeometry.cpp.

inline 
Allows direct construction of QVariants from geometry.
Definition at line 3126 of file qgsgeometry.h.
QgsGeometry & QgsGeometry::operator=  (  QgsGeometry const &  rhs  ) 
Creates a deep copy of the object.
Definition at line 86 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::orientedMinimumBoundingBox  (  )  const 
Returns the oriented minimum bounding box for the geometry, which is the smallest (by area) rotated rectangle which fully encompasses the geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Definition at line 1269 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::orientedMinimumBoundingBox  (  double &  area, 
double &  angle,  
double &  width,  
double &  height  
)  const 
Returns the oriented minimum bounding box for the geometry, which is the smallest (by area) rotated rectangle which fully encompasses the geometry.
The area, angle (clockwise in degrees from North), width and height of the rotated bounding box will also be returned.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Definition at line 1259 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::orthogonalize  (  double  tolerance = 1.0E8 , 
int  maxIterations = 1000 , 

double  angleThreshold = 15.0 

)  const 
Attempts to orthogonalize a line or polygon geometry by shifting vertices to make the geometries angles either right angles or flat lines.
This is an iterative algorithm which will loop until either the vertices are within a specified tolerance of right angles or a set number of maximum iterations is reached. The angle threshold parameter specifies how close to a right angle or straight line an angle must be before it is attempted to be straightened.
Definition at line 1358 of file qgsgeometry.cpp.
bool QgsGeometry::overlaps  (  const QgsGeometry &  geometry  )  const 
Returns true
if the geometry overlaps another geometry.
Definition at line 1550 of file qgsgeometry.cpp.
QgsGeometryPartIterator QgsGeometry::parts  (  ) 
Returns Javastyle iterator for traversal of parts of the geometry.
This iterator can safely be used to modify parts of the geometry.
This method forces a detach. Use constParts() to avoid the detach if the parts are not going to be modified.
Definition at line 2264 of file qgsgeometry.cpp.
QgsAbstractGeometry::part_iterator QgsGeometry::parts_begin  (  ) 
Returns STLstyle iterator pointing to the first part of the geometry.
This method forces a detach. Use const_parts_begin() to avoid the detach if the parts are not going to be modified.
Definition at line 2234 of file qgsgeometry.cpp.
QgsAbstractGeometry::part_iterator QgsGeometry::parts_end  (  ) 
Returns STLstyle iterator pointing to the imaginary part after the last part of the geometry.
This method forces a detach. Use const_parts_begin() to avoid the detach if the parts are not going to be modified.
Definition at line 2243 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::pointOnSurface  (  )  const 
Returns a point guaranteed to lie on the surface of a geometry.
While the centroid() of a geometry may be located outside of the geometry itself (e.g., for concave shapes), the point on surface will always be inside the geometry.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Definition at line 2539 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::poleOfInaccessibility  (  double  precision, 
double *  distanceToBoundary = nullptr 

)  const 
Calculates the approximate pole of inaccessibility for a surface, which is the most distant internal point from the boundary of the surface.
This function uses the 'polylabel' algorithm (Vladimir Agafonkin, 2016), which is an iterative approach guaranteed to find the true pole of inaccessibility within a specified tolerance. More precise tolerances require more iterations and will take longer to calculate. Optionally, the distance to the polygon boundary from the pole can be stored.
Definition at line 2554 of file qgsgeometry.cpp.

static 
Creates a GeometryCollection geometry containing possible polygons formed from the constituent linework of a set of geometries.
The input geometries must be fully noded (i.e. nodes exist at every common intersection of the geometries). The easiest way to ensure this is to first call unaryUnion() on the set of input geometries and then pass the result to polygonize(). An empty geometry will be returned in the case of errors.
Definition at line 3471 of file qgsgeometry.cpp.
Qgis::AngularDirection QgsGeometry::polygonOrientation  (  )  const 
Returns the orientation of the polygon.
Definition at line 3236 of file qgsgeometry.cpp.
QVector< QgsPointXY > QgsGeometry::randomPointsInPolygon  (  int  count, 
const std::function< bool(const QgsPointXY &) > &  acceptPoint,  
unsigned long  seed = 0 , 

QgsFeedback *  feedback = nullptr , 

int  maxTriesPerPoint = 0 

)  const 
Returns a list of count random points generated inside a (multi)polygon geometry (if acceptPoint is specified, and restrictive, the number of points returned may be less than count).
Optionally, a specific random seed can be used when generating points. If seed is 0, then a completely random sequence of points will be generated.
If the source geometry is not a (multi)polygon, an empty list will be returned.
The optional feedback argument can be used to provide cancellation support during the point generation.
The acceptPoint function is used to filter result candidates. If the function returns false
, then the point will not be accepted and another candidate generated.
When acceptPoint is specified, maxTriesPerPoint defines how many attempts to make before giving up generating a point.
QVector< QgsPointXY > QgsGeometry::randomPointsInPolygon  (  int  count, 
unsigned long  seed = 0 , 

QgsFeedback *  feedback = nullptr 

)  const 
Returns a list of count random points generated inside a (multi)polygon geometry.
Optionally, a specific random seed can be used when generating points. If seed is 0, then a completely random sequence of points will be generated.
If the source geometry is not a (multi)polygon, an empty list will be returned.
The optional feedback argument can be used to provide cancellation support during the point generation.
bool QgsGeometry::removeDuplicateNodes  (  double  epsilon = 4 * std::numeric_limits<double>::epsilon() , 
bool  useZValues = false 

) 
Removes duplicate nodes from the geometry, wherever removing the nodes does not result in a degenerate geometry.
The epsilon parameter specifies the tolerance for coordinates when determining that vertices are identical.
By default, z values are not considered when detecting duplicate nodes. E.g. two nodes with the same x and y coordinate but different z values will still be considered duplicate and one will be removed. If useZValues is true
, then the z values are also tested and nodes with the same x and y but different z will be maintained.
Note that duplicate nodes are not tested between different parts of a multipart geometry. E.g. a multipoint geometry with overlapping points will not be changed by this method.
The function will return true
if nodes were removed, or false
if no duplicate nodes were found.
Definition at line 1416 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::removeInteriorRings  (  double  minimumAllowedArea = 1  )  const 
Removes the interior rings from a (multi)polygon geometry.
If the minimumAllowedArea parameter is specified then only rings smaller than this minimum area will be removed.
Definition at line 1013 of file qgsgeometry.cpp.
bool QgsGeometry::requiresConversionToStraightSegments  (  )  const 
Returns true
if the geometry is a curved geometry type which requires conversion to display as straight line segments.
Definition at line 3499 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::reshapeGeometry  (  const QgsLineString &  reshapeLineString  ) 
Replaces a part of this geometry with another line.
Definition at line 1160 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::rotate  (  double  rotation, 
const QgsPointXY &  center  
) 
Rotate this geometry around the Z axis.
rotation  clockwise rotation in degrees 
center  rotation center 
Definition at line 1062 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::roundWaves  (  double  wavelength, 
double  amplitude,  
bool  strictWavelength = false 

)  const 
Constructs rounded (sinelike) waves along the boundary of the geometry, with the specified wavelength and amplitude.
By default the wavelength argument is treated as a "maximum wavelength", where the actual wavelength will be dynamically adjusted so that an exact number of waves are created along the boundaries of the geometry. If strictWavelength is set to true
then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.
Definition at line 1389 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::roundWavesRandomized  (  double  minimumWavelength, 
double  maximumWavelength,  
double  minimumAmplitude,  
double  maximumAmplitude,  
unsigned long  seed = 0 

)  const 
Constructs randomized rounded (sinelike) waves along the boundary of the geometry, with the specified wavelength and amplitude ranges.
The minimumWavelength and maximumWavelength arguments set the range for the randomized wavelength. This is evaluated for each individual waveform created along the geometry boundaries, so the resultant geometry will consist of many different wavelengths.
Similarly, the minimumAmplitude and maximumAmplitude arguments define the range for the randomized amplitude of the square components. Randomized amplitude values will be calculated individually for waves placed on each either side of the input geometry boundaries.
Optionally, a specific random seed can be used when generating points. If seed is 0, then a completely random sequence of points will be generated.
Definition at line 1395 of file qgsgeometry.cpp.
void QgsGeometry::set  (  QgsAbstractGeometry *  geometry  ) 
Sets the underlying geometry store.
Ownership of geometry is transferred.
Definition at line 135 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::sharedPaths  (  const QgsGeometry &  other  )  const 
Find paths shared between the two given lineal geometries (this and other).
Returns a GeometryCollection having two elements:
Returns a null geometry on exception.
Definition at line 2763 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::shortestLine  (  const QgsGeometry &  other  )  const 
Returns the shortest line joining this geometry to another geometry.
Definition at line 872 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::simplify  (  double  tolerance  )  const 
Returns a simplified version of this geometry using a specified tolerance value.
Definition at line 2475 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::simplifyCoverageVW  (  double  tolerance, 
bool  preserveBoundary  
)  const 
Operates on a coverage (represented as a list of polygonal geometry with exactly matching edge geometry) to apply a Visvalingamâ€“Whyatt simplification to the edges, reducing complexity in proportion with the provided tolerance, while retaining a valid coverage (no edges will cross or touch after the simplification).
Geometries never disappear, but they may be simplified down to just a triangle. Also, some invalid geoms (such as Polygons which have too few nonrepeated points) will be returned unchanged.
If the input dataset is not a valid coverage due to overlaps, it will still be simplified, but invalid topology such as crossing edges will still be invalid.
tolerance  A tolerance parameter in linear units. 
preserveBoundary  Set to true to preserve the outside edges of the coverage without simplification, or false to allow them to be simplified. 
This method requires a QGIS build based on GEOS 3.12 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.11 or earlier. 
Definition at line 2735 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::singleSidedBuffer  (  double  distance, 
int  segments,  
Qgis::BufferSide  side,  
Qgis::JoinStyle  joinStyle = Qgis::JoinStyle::Round , 

double  miterLimit = 2.0 

)  const 
Returns a single sided buffer for a (multi)line geometry.
The buffer is only applied to one side of the line.
distance  buffer distance 
segments  for round joins, number of segments to approximate quartercircle 
side  side of geometry to buffer 
joinStyle  join style for corners 
miterLimit  limit on the miter ratio used for very sharp corners 
Definition at line 2377 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::smooth  (  unsigned int  iterations = 1 , 
double  offset = 0.25 , 

double  minimumDistance = 1.0 , 

double  maxAngle = 180.0 

)  const 
Smooths a geometry by rounding off corners using the Chaikin algorithm.
This operation roughly doubles the number of vertices in a geometry.
If input geometries contain Z or M values, these will also be smoothed and the output geometry will retain the same dimensionality as the input geometry.
iterations  number of smoothing iterations to run. More iterations results in a smoother geometry 
offset  fraction of line to create new vertices along, between 0 and 1.0, e.g., the default value of 0.25 will create new vertices 25% and 75% along each line segment of the geometry for each iteration. Smaller values result in "tighter" smoothing. 
minimumDistance  minimum segment length to apply smoothing to 
maxAngle  maximum angle at node (0180) at which smoothing will be applied 
Definition at line 3865 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::snappedToGrid  (  double  hSpacing, 
double  vSpacing,  
double  dSpacing = 0 , 

double  mSpacing = 0 

)  const 
Returns a new geometry with all points or vertices snapped to the closest point of the grid.
If the gridified geometry could not be calculated (or was totally collapsed) an empty geometry will be returned. Note that snapping to grid may generate an invalid geometry in some corner cases. It can also be thought as rounding the edges and it may be useful for removing errors.
hSpacing  Horizontal spacing of the grid (x axis). 0 to disable. 
vSpacing  Vertical spacing of the grid (y axis). 0 to disable. 
dSpacing  Depth spacing of the grid (z axis). 0 (default) to disable. 
mSpacing  Custom dimension spacing of the grid (m axis). 0 (default) to disable. 
Definition at line 1407 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::splitGeometry  (  const QgsCurve *  curve, 
QVector< QgsGeometry > &  newGeometries,  
bool  preserveCircular,  
bool  topological,  
QgsPointSequence &  topologyTestPoints,  
bool  splitFeature = true 

) 
Splits this geometry according to a given curve.
curve  the curve that splits the geometry  
[out]  newGeometries  list of new geometries that have been created with the splitLine . If the geometry is 3D, a linear interpolation of the z value is performed on the geometry at split points, see example. 
preserveCircular  whether if circular strings are preserved after splitting  
topological  true if topological editing is enabled  
[out]  topologyTestPoints  points that need to be tested for topological completeness in the dataset 
splitFeature  Set to true if you want to split a feature, otherwise set to false to split parts 
Definition at line 1140 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::splitGeometry  (  const QgsPointSequence &  splitLine, 
QVector< QgsGeometry > &  newGeometries,  
bool  topological,  
QgsPointSequence &  topologyTestPoints,  
bool  splitFeature = true , 

bool  skipIntersectionTest = false 

) 
Splits this geometry according to a given line.
splitLine  the line that splits the geometry  
[out]  newGeometries  list of new geometries that have been created with the splitLine . If the geometry is 3D, a linear interpolation of the z value is performed on the geometry at split points, see example. 
topological  true if topological editing is enabled  
[out]  topologyTestPoints  points that need to be tested for topological completeness in the dataset 
splitFeature  Set to true if you want to split a feature, otherwise set to false to split parts  
skipIntersectionTest  set to true to skip the potentially expensive initial intersection check. Only set this flag if an intersection test has already been performed by the caller! Not available in Python bindings. 
Example:
Definition at line 1087 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::splitGeometry  (  const QVector< QgsPointXY > &  splitLine, 
QVector< QgsGeometry > &  newGeometries,  
bool  topological,  
QVector< QgsPointXY > &  topologyTestPoints,  
bool  splitFeature = true 

) 
Splits this geometry according to a given line.
splitLine  the line that splits the geometry  
[out]  newGeometries  list of new geometries that have been created with the split 
topological  true if topological editing is enabled  
[out]  topologyTestPoints  points that need to be tested for topological completeness in the dataset 
splitFeature  Set to true if you want to split a feature, otherwise set to false to split parts 
Definition at line 1078 of file qgsgeometry.cpp.
double QgsGeometry::sqrDistToVertexAt  (  QgsPointXY &  point, 
int  atVertex  
)  const 
Returns the squared Cartesian distance between the given point to the given vertex index (vertex at the given position number, ring and item (first number is index 0))
Definition at line 851 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::squareWaves  (  double  wavelength, 
double  amplitude,  
bool  strictWavelength = false 

)  const 
Constructs square waves along the boundary of the geometry, with the specified wavelength and amplitude.
By default the wavelength argument is treated as a "maximum wavelength", where the actual wavelength will be dynamically adjusted so that an exact number of square waves are created along the boundaries of the geometry. If strictWavelength is set to true
then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.
Definition at line 1377 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::squareWavesRandomized  (  double  minimumWavelength, 
double  maximumWavelength,  
double  minimumAmplitude,  
double  maximumAmplitude,  
unsigned long  seed = 0 

)  const 
Constructs randomized square waves along the boundary of the geometry, with the specified wavelength and amplitude ranges.
The minimumWavelength and maximumWavelength arguments set the range for the randomized wavelength. This is evaluated for each individual square waveform created along the geometry boundaries, so the resultant geometry will consist of many different wavelengths.
Similarly, the minimumAmplitude and maximumAmplitude arguments define the range for the randomized amplitude of the square components. Randomized amplitude values will be calculated individually for squares placed on each either side of the input geometry boundaries.
Optionally, a specific random seed can be used when generating points. If seed is 0, then a completely random sequence of points will be generated.
Definition at line 1383 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::subdivide  (  int  maxNodes = 256 , 
const QgsGeometryParameters &  parameters = QgsGeometryParameters() 

)  const 
Subdivides the geometry.
The returned geometry will be a collection containing subdivided parts from the original geometry, where no part has more then the specified maximum number of nodes (maxNodes).
This is useful for dividing a complex geometry into less complex parts, which are better able to be spatially indexed and faster to perform further operations such as intersects on. The returned geometry parts may not be valid and may contain selfintersections.
The minimum allowed value for maxNodes is 8.
Curved geometries will be segmentized before subdivision.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Since QGIS 3.28 the optional parameters argument can be used to specify parameters which control the subdivision results.
Definition at line 2777 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::symDifference  (  const QgsGeometry &  geometry, 
const QgsGeometryParameters &  parameters = QgsGeometryParameters() 

)  const 
Returns a geometry representing the points making up this geometry that do not make up other.
If the input is a NULL geometry, the output will also be a NULL geometry.
If an error was encountered while creating the result, more information can be retrieved by calling lastError() on the returned geometry.
Since QGIS 3.28 the optional parameters argument can be used to specify parameters which control the difference results.
Definition at line 3012 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::taperedBuffer  (  double  startWidth, 
double  endWidth,  
int  segments  
)  const 
Calculates a variable width buffer ("tapered buffer") for a (multi)curve geometry.
The buffer begins at a width of startWidth at the start of each curve, and ends at a width of endWidth. Note that unlike buffer() methods, startWidth and endWidth are the diameter of the buffer at these points, not the radius.
The segments argument specifies the number of segments to approximate quartercircle curves in the buffer.
Non (multi)curve input geometries will return a null output geometry.
Definition at line 2421 of file qgsgeometry.cpp.
bool QgsGeometry::toggleCircularAtVertex  (  int  atVertex  ) 
Converts the vertex at the given position from/to circular.
false
if atVertex does not correspond to a valid vertex on this geometry (including if this geometry is a Point), or if the specified vertex can't be converted (e.g. start/end points). Definition at line 669 of file qgsgeometry.cpp.
bool QgsGeometry::touches  (  const QgsGeometry &  geometry  )  const 
Returns true
if the geometry touches another geometry.
Definition at line 1538 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::transform  (  const QgsCoordinateTransform &  ct, 
Qgis::TransformDirection  direction = Qgis::TransformDirection::Forward , 

bool  transformZ = false 

) 
Transforms this geometry as described by the coordinate transform ct.
The transformation defaults to a forward transform, but the direction can be swapped by setting the direction argument.
By default, zcoordinates are not transformed, even if the coordinate transform includes a vertical datum transformation. To transform zcoordinates, set transformZ to true
. This requires that the z coordinates in the geometry represent height relative to the vertical datum of the source CRS (generally ellipsoidal heights) and are expressed in its vertical units (generally meters).
Definition at line 3509 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::transform  (  const QTransform &  t, 
double  zTranslate = 0.0 , 

double  zScale = 1.0 , 

double  mTranslate = 0.0 , 

double  mScale = 1.0 

) 
Transforms the x and y components of the geometry using a QTransform object t.
Optionally, the geometry's z values can be scaled via zScale and translated via zTranslate. Similarly, mvalues can be scaled via mScale and translated via mTranslate.
Definition at line 3521 of file qgsgeometry.cpp.
void QgsGeometry::transformVertices  (  const std::function< QgsPoint(const QgsPoint &) > &  transform  ) 
Transforms the vertices from the geometry in place, applying the transform function to every vertex.
Depending on the transform used, this may result in an invalid geometry.
Transform functions are not permitted to alter the dimensionality of vertices. If a transform which adds (or removes) z/m values is desired, first call the corresponding addZValue() or addMValue() function to change the geometry's dimensionality and then transform.
Definition at line 3704 of file qgsgeometry.cpp.
Qgis::GeometryOperationResult QgsGeometry::translate  (  double  dx, 
double  dy,  
double  dz = 0.0 , 

double  dm = 0.0 

) 
Translates this geometry by dx, dy, dz and dm.
Definition at line 1049 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::triangularWaves  (  double  wavelength, 
double  amplitude,  
bool  strictWavelength = false 

)  const 
Constructs triangular waves along the boundary of the geometry, with the specified wavelength and amplitude.
By default the wavelength argument is treated as a "maximum wavelength", where the actual wavelength will be dynamically adjusted so that an exact number of triangular waves are created along the boundaries of the geometry. If strictWavelength is set to true
then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.
Definition at line 1365 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::triangularWavesRandomized  (  double  minimumWavelength, 
double  maximumWavelength,  
double  minimumAmplitude,  
double  maximumAmplitude,  
unsigned long  seed = 0 

)  const 
Constructs randomized triangular waves along the boundary of the geometry, with the specified wavelength and amplitude ranges.
The minimumWavelength and maximumWavelength arguments set the range for the randomized wavelength. This is evaluated for each individual triangular waveform created along the geometry boundaries, so the resultant geometry will consist of many different wavelengths.
Similarly, the minimumAmplitude and maximumAmplitude arguments define the range for the randomized amplitude of the triangular components. Randomized amplitude values will be calculated individually for triangles placed on each either side of the input geometry boundaries.
Optionally, a specific random seed can be used when generating points. If seed is 0, then a completely random sequence of points will be generated.
Definition at line 1371 of file qgsgeometry.cpp.
Qgis::GeometryType QgsGeometry::type  (  )  const 
Returns type of the geometry as a Qgis::GeometryType.
Definition at line 492 of file qgsgeometry.cpp.

static 
Compute the unary union on a list of geometries.
May be faster than an iterative union on a set of geometries. The returned geometry will be fully noded, i.e. a node will be created at every common intersection of the input geometries. An empty geometry will be returned in the case of errors.
Since QGIS 3.28 the optional parameters argument can be used to specify parameters which control the union results.
Definition at line 3460 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::unionCoverage  (  )  const 
Optimized union algorithm for polygonal inputs that are correctly noded and do not overlap.
It may generate an error (returning a null geometry) for inputs that do not satisfy this constraint, however this is not guaranteed.
The input geometry is the polygonal coverage to union, stored in a geometry collection. All members must be POLYGON or MULTIPOLYGON.
Definition at line 2697 of file qgsgeometry.cpp.
Qgis::CoverageValidityResult QgsGeometry::validateCoverage  (  double  gapWidth, 
QgsGeometry *  invalidEdges = nullptr 

)  const 
Analyze a coverage (represented as a collection of polygonal geometry with exactly matching edge geometry) to find places where the assumption of exactly matching edges is not met.
The input geometry is the polygonal coverage to access, stored in a geometry collection. All members must be POLYGON or MULTIPOLYGON.
gapWidth  The maximum width of gaps to detect. 
invalidEdges  When there are invalidities in the coverage, will be set with a geometry collection of the same length as the input, with a MULTILINESTRING of the error edges for each invalid polygon, or an EMPTY where the polygon is a valid participant in the coverage. 
This method requires a QGIS build based on GEOS 3.12 or later.
QgsNotSupportedException  on QGIS builds based on GEOS 3.11 or earlier. 
Definition at line 2716 of file qgsgeometry.cpp.
void QgsGeometry::validateGeometry  (  QVector< QgsGeometry::Error > &  errors, 
Qgis::GeometryValidationEngine  method = Qgis::GeometryValidationEngine::QgisInternal , 

Qgis::GeometryValidityFlags  flags = Qgis::GeometryValidityFlags() 

)  const 
Validates geometry and produces a list of geometry errors.
The method argument dictates which validator to utilize.
The flags parameter indicates optional flags which control the type of validity checking performed.
Definition at line 3349 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::variableWidthBufferByM  (  int  segments  )  const 
Calculates a variable width buffer for a (multi)linestring geometry, where the width at each node is taken from the linestring m values.
The segments argument specifies the number of segments to approximate quartercircle curves in the buffer.
Non (multi)linestring input geometries will return a null output geometry.
Definition at line 2428 of file qgsgeometry.cpp.
QgsPoint QgsGeometry::vertexAt  (  int  atVertex  )  const 
Returns coordinates of a vertex.
atVertex  index of the vertex 
Definition at line 835 of file qgsgeometry.cpp.
bool QgsGeometry::vertexIdFromVertexNr  (  int  number, 
QgsVertexId &  id  
)  const 
Calculates the vertex ID from a vertex number.
If a matching vertex was found, it will be stored in id.
Returns true
if vertex was found.
Definition at line 3644 of file qgsgeometry.cpp.
int QgsGeometry::vertexNrFromVertexId  (  QgsVertexId  id  )  const 
Returns the vertex number corresponding to a vertex id.
The vertex numbers start at 0, so a return value of 0 corresponds to the first vertex.
Returns 1 if a corresponding vertex could not be found.
Definition at line 3680 of file qgsgeometry.cpp.
QgsVertexIterator QgsGeometry::vertices  (  )  const 
Returns a readonly, Javastyle iterator for traversal of vertices of all the geometry, including all geometry parts and rings.
Definition at line 2227 of file qgsgeometry.cpp.
QgsAbstractGeometry::vertex_iterator QgsGeometry::vertices_begin  (  )  const 
Returns STLstyle iterator pointing to the first vertex of the geometry.
Definition at line 2213 of file qgsgeometry.cpp.
QgsAbstractGeometry::vertex_iterator QgsGeometry::vertices_end  (  )  const 
Returns STLstyle iterator pointing to the imaginary vertex after the last vertex of the geometry.
Definition at line 2220 of file qgsgeometry.cpp.
QgsGeometry QgsGeometry::voronoiDiagram  (  const QgsGeometry &  extent = QgsGeometry() , 
double  tolerance = 0.0 , 

bool  edgesOnly = false 

)  const 
Creates a Voronoi diagram for the nodes contained within the geometry.
Returns the Voronoi polygons for the nodes contained within the geometry. If extent is specified then it will be used as a clipping envelope for the diagram. If no extent is set then the clipping envelope will be automatically calculated. In either case the diagram will be clipped to the larger of the provided envelope OR the envelope surrounding all input nodes. The tolerance parameter specifies an optional snapping tolerance which can be used to improve the robustness of the diagram calculation. If edgesOnly is true
than line string boundary geometries will be returned instead of polygons. An empty geometry will be returned if the diagram could not be calculated.
Definition at line 2655 of file qgsgeometry.cpp.
bool QgsGeometry::within  (  const QgsGeometry &  geometry  )  const 
Returns true
if the geometry is completely within another geometry.
Definition at line 1562 of file qgsgeometry.cpp.
int QgsGeometry::wkbSize  (  QgsAbstractGeometry::WkbFlags  flags = QgsAbstractGeometry::WkbFlags()  )  const 
Returns the length of the QByteArray returned by asWkb()
The optional flags argument specifies flags controlling WKB export behavior
Definition at line 3064 of file qgsgeometry.cpp.
Qgis::WkbType QgsGeometry::wkbType  (  )  const 
Returns type of the geometry as a WKB type (point / linestring / polygon etc.)
Definition at line 479 of file qgsgeometry.cpp.

friend 
Definition at line 3188 of file qgsgeometry.h.

read 
Definition at line 163 of file qgsgeometry.h.

read 
Definition at line 163 of file qgsgeometry.h.