QGIS API Documentation  2.14.0-Essen
QgsGeometryUtils Class Reference

Contains various geometry utility functions. More...

`#include <qgsgeometryutils.h>`

## Classes

struct  SelfIntersection

## Public Types

enum  componentType { VERTEX, RING, PART }

## Static Public Member Functions

static void adjacentVertices (const QgsAbstractGeometryV2 &geom, QgsVertexId atVertex, QgsVertexId &beforeVertex, QgsVertexId &afterVertex)
Returns vertices adjacent to a specified vertex within a geometry. More...

static bool angleOnCircle (double angle, double angle1, double angle2, double angle3)
Returns true if an angle is between angle1 and angle3 on a circle described by angle1, angle2 and angle3. More...

static double averageAngle (double x1, double y1, double x2, double y2, double x3, double y3)
Angle between two linear segments. More...

static double averageAngle (double a1, double a2)
Averages two angles, correctly handling negative angles and ensuring the result is between 0 and 2 pi. More...

static double ccwAngle (double dy, double dx)
Returns the counter clockwise angle between a line with components dx, dy and the line with dx > 0 and dy = 0. More...

static bool circleAngleBetween (double angle, double angle1, double angle2, bool clockwise)
Returns true if, in a circle, angle is between angle1 and angle2. More...

static void circleCenterRadius (const QgsPointV2 &pt1, const QgsPointV2 &pt2, const QgsPointV2 &pt3, double &radius, double &centerX, double &centerY)
Returns radius and center of the circle through pt1, pt2, pt3. More...

static bool circleClockwise (double angle1, double angle2, double angle3)
Returns true if circle is ordered clockwise. More...

static double circleLength (double x1, double y1, double x2, double y2, double x3, double y3)
Length of a circular string segment defined by pt1, pt2, pt3. More...

static double circleTangentDirection (const QgsPointV2 &tangentPoint, const QgsPointV2 &cp1, const QgsPointV2 &cp2, const QgsPointV2 &cp3)
Calculates the direction angle of a circle tangent (clockwise from north in radians) More...

template<class T >
static double closestSegmentFromComponents (T &container, componentType ctype, const QgsPointV2 &pt, QgsPointV2 &segmentPt, QgsVertexId &vertexAfter, bool *leftOf, double epsilon)

static QgsPointV2 closestVertex (const QgsAbstractGeometryV2 &geom, const QgsPointV2 &pt, QgsVertexId &id)
Returns the closest vertex to a geometry for a specified point. More...

static QList< QgsLineStringV2 * > extractLineStrings (const QgsAbstractGeometryV2 *geom)
Returns list of linestrings extracted from the passed geometry. More...

static QList< SelfIntersectiongetSelfIntersections (const QgsAbstractGeometryV2 *geom, int part, int ring, double tolerance)
Find self intersections in a polyline. More...

static double leftOfLine (double x, double y, double x1, double y1, double x2, double y2)
Returns < 0 if point(x/y) is left of the line x1,y1 -> x2,y2. More...

static double lineAngle (double x1, double y1, double x2, double y2)
Calculates the direction of line joining two points in radians, clockwise from the north direction. More...

static bool lineIntersection (const QgsPointV2 &p1, QgsVector v, const QgsPointV2 &q1, QgsVector w, QgsPointV2 &inter)
Compute the intersection between two lines. More...

static double linePerpendicularAngle (double x1, double y1, double x2, double y2)
Calculates the perpendicular angle to a line joining two points. More...

static double normalizedAngle (double angle)
Ensures that an angle is in the range 0 <= angle < 2 pi. More...

static QgsPointV2 pointOnLineWithDistance (const QgsPointV2 &startPoint, const QgsPointV2 &directionPoint, double distance)
Returns a point a specified distance toward a second point. More...

static QgsPointSequenceV2 pointsFromWKT (const QString &wktCoordinateList, bool is3D, bool isMeasure)
Returns a list of points contained in a WKT string. More...

static QDomElement pointsToGML2 (const QgsPointSequenceV2 &points, QDomDocument &doc, int precision, const QString &ns)
Returns a gml::coordinates DOM element. More...

static QDomElement pointsToGML3 (const QgsPointSequenceV2 &points, QDomDocument &doc, int precision, const QString &ns, bool is3D)
Returns a gml::posList DOM element. More...

static QString pointsToJSON (const QgsPointSequenceV2 &points, int precision)
Returns a geoJSON coordinates string. More...

static void pointsToWKB (QgsWkbPtr &wkb, const QgsPointSequenceV2 &points, bool is3D, bool isMeasure)
Returns a LinearRing { uint32 numPoints; Point points[numPoints]; }. More...

static QString pointsToWKT (const QgsPointSequenceV2 &points, int precision, bool is3D, bool isMeasure)
Returns a WKT coordinate list. More...

static QgsPointV2 projPointOnSegment (const QgsPointV2 &p, const QgsPointV2 &s1, const QgsPointV2 &s2)
Project the point on a segment. More...

static bool segmentIntersection (const QgsPointV2 &p1, const QgsPointV2 &p2, const QgsPointV2 &q1, const QgsPointV2 &q2, QgsPointV2 &inter, double tolerance)
Compute the intersection between two segments. More...

static bool segmentMidPoint (const QgsPointV2 &p1, const QgsPointV2 &p2, QgsPointV2 &result, double radius, const QgsPointV2 &mousePos)
Calculates midpoint on circle passing through p1 and p2, closest to given coordinate. More...

static double sqrDistance2D (const QgsPointV2 &pt1, const QgsPointV2 &pt2)
Returns the squared 2D distance between two points. More...

static double sqrDistToLine (double ptX, double ptY, double x1, double y1, double x2, double y2, double &minDistX, double &minDistY, double epsilon)
Returns the squared distance between a point and a line. More...

static double sweepAngle (double centerX, double centerY, double x1, double y1, double x2, double y2, double x3, double y3)
Calculates angle of a circular string part defined by pt1, pt2, pt3. More...

static QStringList wktGetChildBlocks (const QString &wkt, const QString &defaultType="")
Parses a WKT string and returns of list of blocks contained in the WKT. More...

static QPair< QgsWKBTypes::Type, QStringwktReadBlock (const QString &wkt)
Parses a WKT block of the format "TYPE( contents )" and returns a pair of geometry type to contents ("Pair(wkbType, "contents")") More...

## Detailed Description

Contains various geometry utility functions.

Note
this API is not considered stable and may change for 2.12
not available in Python bindings

Definition at line 31 of file qgsgeometryutils.h.

## Member Enumeration Documentation

Enumerator
VERTEX
RING
PART

Definition at line 209 of file qgsgeometryutils.h.

## Member Function Documentation

 void QgsGeometryUtils::adjacentVertices ( const QgsAbstractGeometryV2 & geom, QgsVertexId atVertex, QgsVertexId & beforeVertex, QgsVertexId & afterVertex )
static

Returns vertices adjacent to a specified vertex within a geometry.

Definition at line 92 of file qgsgeometryutils.cpp.

 bool QgsGeometryUtils::angleOnCircle ( double angle, double angle1, double angle2, double angle3 )
static

Returns true if an angle is between angle1 and angle3 on a circle described by angle1, angle2 and angle3.

Definition at line 415 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::averageAngle ( double x1, double y1, double x2, double y2, double x3, double y3 )
static

Angle between two linear segments.

Definition at line 752 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::averageAngle ( double a1, double a2 )
static

Averages two angles, correctly handling negative angles and ensuring the result is between 0 and 2 pi.

Parameters
Returns

Definition at line 760 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::ccwAngle ( double dy, double dx )
static

Returns the counter clockwise angle between a line with components dx, dy and the line with dx > 0 and dy = 0.

Definition at line 311 of file qgsgeometryutils.cpp.

 bool QgsGeometryUtils::circleAngleBetween ( double angle, double angle1, double angle2, bool clockwise )
static

Returns true if, in a circle, angle is between angle1 and angle2.

Definition at line 389 of file qgsgeometryutils.cpp.

 void QgsGeometryUtils::circleCenterRadius ( const QgsPointV2 & pt1, const QgsPointV2 & pt2, const QgsPointV2 & pt3, double & radius, double & centerX, double & centerY )
static

Returns radius and center of the circle through pt1, pt2, pt3.

Definition at line 325 of file qgsgeometryutils.cpp.

 bool QgsGeometryUtils::circleClockwise ( double angle1, double angle2, double angle3 )
static

Returns true if circle is ordered clockwise.

Definition at line 363 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::circleLength ( double x1, double y1, double x2, double y2, double x3, double y3 )
static

Length of a circular string segment defined by pt1, pt2, pt3.

Definition at line 421 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::circleTangentDirection ( const QgsPointV2 & tangentPoint, const QgsPointV2 & cp1, const QgsPointV2 & cp2, const QgsPointV2 & cp3 )
static

Calculates the direction angle of a circle tangent (clockwise from north in radians)

Definition at line 506 of file qgsgeometryutils.cpp.

template<class T >
 static double QgsGeometryUtils::closestSegmentFromComponents ( T & container, componentType ctype, const QgsPointV2 & pt, QgsPointV2 & segmentPt, QgsVertexId & vertexAfter, bool * leftOf, double epsilon )
inlinestatic

Definition at line 216 of file qgsgeometryutils.h.

 QgsPointV2 QgsGeometryUtils::closestVertex ( const QgsAbstractGeometryV2 & geom, const QgsPointV2 & pt, QgsVertexId & id )
static

Returns the closest vertex to a geometry for a specified point.

Definition at line 63 of file qgsgeometryutils.cpp.

 QList< QgsLineStringV2 * > QgsGeometryUtils::extractLineStrings ( const QgsAbstractGeometryV2 * geom )
static

Returns list of linestrings extracted from the passed geometry.

The returned objects have to be deleted by the caller.

Definition at line 27 of file qgsgeometryutils.cpp.

 QList< QgsGeometryUtils::SelfIntersection > QgsGeometryUtils::getSelfIntersections ( const QgsAbstractGeometryV2 * geom, int part, int ring, double tolerance )
static

Find self intersections in a polyline.

Parameters
 geom The geometry to check part The part of the geometry to check ring The ring of the geometry part to check tolerance The tolerance to use
Returns
The list of self intersections
Note

Definition at line 248 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::leftOfLine ( double x, double y, double x1, double y1, double x2, double y2 )
static

Returns < 0 if point(x/y) is left of the line x1,y1 -> x2,y2.

Definition at line 287 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::lineAngle ( double x1, double y1, double x2, double y2 )
static

Calculates the direction of line joining two points in radians, clockwise from the north direction.

Parameters
 x1 x-coordinate of line start y1 y-coordinate of line start x2 x-coordinate of line end y2 y-coordinate of line end
Returns
angle in radians. Returned value is undefined if start and end point are the same.

Definition at line 738 of file qgsgeometryutils.cpp.

 bool QgsGeometryUtils::lineIntersection ( const QgsPointV2 & p1, QgsVector v, const QgsPointV2 & q1, QgsVector w, QgsPointV2 & inter )
static

Compute the intersection between two lines.

Parameters
 p1 Point on the first line v Direction vector of the first line q1 Point on the second line w Direction vector of the second line inter Output parameter, the intersection point
Returns
Whether the lines intersect

Definition at line 204 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::linePerpendicularAngle ( double x1, double y1, double x2, double y2 )
static

Calculates the perpendicular angle to a line joining two points.

Returned angle is in radians, clockwise from the north direction.

Parameters
 x1 x-coordinate of line start y1 y-coordinate of line start x2 x-coordinate of line end y2 y-coordinate of line end
Returns
angle in radians. Returned value is undefined if start and end point are the same.

Definition at line 745 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::normalizedAngle ( double angle )
static

Ensures that an angle is in the range 0 <= angle < 2 pi.

Parameters
Returns
equivalent angle within the range [0, 2 pi)

Definition at line 679 of file qgsgeometryutils.cpp.

 QgsPointV2 QgsGeometryUtils::pointOnLineWithDistance ( const QgsPointV2 & startPoint, const QgsPointV2 & directionPoint, double distance )
static

Returns a point a specified distance toward a second point.

Definition at line 296 of file qgsgeometryutils.cpp.

 QgsPointSequenceV2 QgsGeometryUtils::pointsFromWKT ( const QString & wktCoordinateList, bool is3D, bool isMeasure )
static

Returns a list of points contained in a WKT string.

Definition at line 526 of file qgsgeometryutils.cpp.

 QDomElement QgsGeometryUtils::pointsToGML2 ( const QgsPointSequenceV2 & points, QDomDocument & doc, int precision, const QString & ns )
static

Returns a gml::coordinates DOM element.

Definition at line 629 of file qgsgeometryutils.cpp.

 QDomElement QgsGeometryUtils::pointsToGML3 ( const QgsPointSequenceV2 & points, QDomDocument & doc, int precision, const QString & ns, bool is3D )
static

Returns a gml::posList DOM element.

Definition at line 645 of file qgsgeometryutils.cpp.

 QString QgsGeometryUtils::pointsToJSON ( const QgsPointSequenceV2 & points, int precision )
static

Returns a geoJSON coordinates string.

Definition at line 664 of file qgsgeometryutils.cpp.

 void QgsGeometryUtils::pointsToWKB ( QgsWkbPtr & wkb, const QgsPointSequenceV2 & points, bool is3D, bool isMeasure )
static

Returns a LinearRing { uint32 numPoints; Point points[numPoints]; }.

Definition at line 593 of file qgsgeometryutils.cpp.

 QString QgsGeometryUtils::pointsToWKT ( const QgsPointSequenceV2 & points, int precision, bool is3D, bool isMeasure )
static

Returns a WKT coordinate list.

Definition at line 610 of file qgsgeometryutils.cpp.

 static QgsPointV2 QgsGeometryUtils::projPointOnSegment ( const QgsPointV2 & p, const QgsPointV2 & s1, const QgsPointV2 & s2 )
inlinestatic

Project the point on a segment.

Parameters
 p The point s1 The segment start point s2 The segment end point
Returns
The projection of the point on the segment

Definition at line 86 of file qgsgeometryutils.h.

 bool QgsGeometryUtils::segmentIntersection ( const QgsPointV2 & p1, const QgsPointV2 & p2, const QgsPointV2 & q1, const QgsPointV2 & q2, QgsPointV2 & inter, double tolerance )
static

Compute the intersection between two segments.

Parameters
 p1 First segment start point p2 First segment end point q1 Second segment start point q2 Second segment end point inter Output parameter, the intersection point tolerance The tolerance to use
Returns
Whether the segments intersect

Definition at line 220 of file qgsgeometryutils.cpp.

 bool QgsGeometryUtils::segmentMidPoint ( const QgsPointV2 & p1, const QgsPointV2 & p2, QgsPointV2 & result, double radius, const QgsPointV2 & mousePos )
static

Calculates midpoint on circle passing through p1 and p2, closest to given coordinate.

Definition at line 463 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::sqrDistance2D ( const QgsPointV2 & pt1, const QgsPointV2 & pt2 )
static

Returns the squared 2D distance between two points.

Definition at line 161 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::sqrDistToLine ( double ptX, double ptY, double x1, double y1, double x2, double y2, double & minDistX, double & minDistY, double epsilon )
static

Returns the squared distance between a point and a line.

Definition at line 166 of file qgsgeometryutils.cpp.

 double QgsGeometryUtils::sweepAngle ( double centerX, double centerY, double x1, double y1, double x2, double y2, double x3, double y3 )
static

Calculates angle of a circular string part defined by pt1, pt2, pt3.

Definition at line 433 of file qgsgeometryutils.cpp.

 QStringList QgsGeometryUtils::wktGetChildBlocks ( const QString & wkt, const QString & defaultType = `""` )
static

Parses a WKT string and returns of list of blocks contained in the WKT.

Parameters
 wkt WKT string in the format "TYPE1 (contents1), TYPE2 (TYPE3 (contents3), TYPE4 (contents4))" defaultType default geometry type for childen
Returns
list of WKT child block strings, eg List("TYPE1 (contents1)", "TYPE2 (TYPE3 (contents3), TYPE4 (contents4))")

Definition at line 702 of file qgsgeometryutils.cpp.

 QPair< QgsWKBTypes::Type, QString > QgsGeometryUtils::wktReadBlock ( const QString & wkt )
static

Parses a WKT block of the format "TYPE( contents )" and returns a pair of geometry type to contents ("Pair(wkbType, "contents")")

Definition at line 693 of file qgsgeometryutils.cpp.

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