QGIS API Documentation  3.0.2-Girona (307d082)
Classes | Public Types | Static Public Member Functions | List of all members
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 double angleBetweenThreePoints (double x1, double y1, double x2, double y2, double x3, double y3)
 Calculates the angle between the lines AB and BC, where AB and BC described by points a, b and b, c. 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 QgsPoint &pt1, const QgsPoint &pt2, const QgsPoint &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 QgsPoint &tangentPoint, const QgsPoint &cp1, const QgsPoint &cp2, const QgsPoint &cp3)
 Calculates the direction angle of a circle tangent (clockwise from north in radians) More...
 
static QgsPoint closestPoint (const QgsAbstractGeometry &geometry, const QgsPoint &point)
 Returns the nearest point on a segment of a geometry for the specified point. More...
 
template<class T >
static double closestSegmentFromComponents (T &container, ComponentType ctype, const QgsPoint &pt, QgsPoint &segmentPt, QgsVertexId &vertexAfter, int *leftOf, double epsilon)
 
static QgsPoint closestVertex (const QgsAbstractGeometry &geom, const QgsPoint &pt, QgsVertexId &id)
 Returns the closest vertex to a geometry for a specified point. More...
 
static void coefficients (const QgsPoint &pt1, const QgsPoint &pt2, double &a, double &b, double &c)
 Return the coefficients (a, b, c for equation "ax + by + c = 0") of a line defined by points pt1 and pt2. More...
 
static double distanceToVertex (const QgsAbstractGeometry &geom, QgsVertexId id)
 Returns the distance along a geometry from its first vertex to the specified vertex. More...
 
static QVector< QgsLineString * > extractLineStrings (const QgsAbstractGeometry *geom)
 Returns list of linestrings extracted from the passed geometry. More...
 
static double gradient (const QgsPoint &pt1, const QgsPoint &pt2)
 Return the gradient of a line defined by points pt1 and pt2. More...
 
static double interpolateArcValue (double angle, double a1, double a2, double a3, double zm1, double zm2, double zm3)
 Interpolate a value at given angle on circular arc given values (zm1, zm2, zm3) at three different angles (a1, a2, a3). More...
 
static QgsPointXY interpolatePointOnLine (double x1, double y1, double x2, double y2, double fraction)
 Interpolates the position of a point a fraction of the way along the line from (x1, y1) to (x2, y2). More...
 
static QgsPoint interpolatePointOnLine (const QgsPoint &p1, const QgsPoint &p2, double fraction)
 Interpolates the position of a point a fraction of the way along the line from p1 to p2. More...
 
static QgsPointXY interpolatePointOnLineByValue (double x1, double y1, double v1, double x2, double y2, double v2, double value)
 Interpolates the position of a point along the line from (x1, y1) to (x2, y2). More...
 
static int leftOfLine (double x, double y, double x1, double y1, double x2, double y2)
 Returns a value < 0 if the point (x, y) is left of the line from (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 lineCircleIntersection (const QgsPointXY &center, const double radius, const QgsPointXY &linePoint1, const QgsPointXY &linePoint2, QgsPointXY &intersection)
 Compute the intersection of a line and a circle. More...
 
static bool lineIntersection (const QgsPoint &p1, QgsVector v1, const QgsPoint &p2, QgsVector v2, QgsPoint &intersection)
 Computes 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 QgsPoint midpoint (const QgsPoint &pt1, const QgsPoint &pt2)
 Returns a middle point between points pt1 and pt2. More...
 
static double normalizedAngle (double angle)
 Ensures that an angle is in the range 0 <= angle < 2 pi. More...
 
static QgsLineString perpendicularSegment (const QgsPoint &p, const QgsPoint &s1, const QgsPoint &s2)
 Create a perpendicular line segment from p to segment [s1, s2]. More...
 
static QgsPoint pointOnLineWithDistance (const QgsPoint &startPoint, const QgsPoint &directionPoint, double distance)
 Returns a point a specified distance toward a second point. More...
 
static QgsPointSequence pointsFromWKT (const QString &wktCoordinateList, bool is3D, bool isMeasure)
 Returns a list of points contained in a WKT string. More...
 
static QDomElement pointsToGML2 (const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns)
 Returns a gml::coordinates DOM element. More...
 
static QDomElement pointsToGML3 (const QgsPointSequence &points, QDomDocument &doc, int precision, const QString &ns, bool is3D)
 Returns a gml::posList DOM element. More...
 
static QString pointsToJSON (const QgsPointSequence &points, int precision)
 Returns a geoJSON coordinates string. More...
 
static void pointsToWKB (QgsWkbPtr &wkb, const QgsPointSequence &points, bool is3D, bool isMeasure)
 Returns a LinearRing { uint32 numPoints; Point points[numPoints]; }. More...
 
static QString pointsToWKT (const QgsPointSequence &points, int precision, bool is3D, bool isMeasure)
 Returns a WKT coordinate list. More...
 
static QgsPoint projectPointOnSegment (const QgsPoint &p, const QgsPoint &s1, const QgsPoint &s2)
 Project the point on a segment. More...
 
static bool segmentIntersection (const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &q1, const QgsPoint &q2, QgsPoint &intersectionPoint, bool &isIntersection, const double tolerance=1e-8, bool acceptImproperIntersection=false)
 Compute the intersection between two segments. More...
 
static void segmentizeArc (const QgsPoint &p1, const QgsPoint &p2, const QgsPoint &p3, QgsPointSequence &points, double tolerance=M_PI_2/90, QgsAbstractGeometry::SegmentationToleranceType toleranceType=QgsAbstractGeometry::MaximumAngle, bool hasZ=false, bool hasM=false)
 Convert circular arc defined by p1, p2, p3 (p1/p3 being start resp. More...
 
static bool segmentMidPoint (const QgsPoint &p1, const QgsPoint &p2, QgsPoint &result, double radius, const QgsPoint &mousePos)
 Calculates midpoint on circle passing through p1 and p2, closest to given coordinate. More...
 
static int segmentSide (const QgsPoint &pt1, const QgsPoint &pt3, const QgsPoint &pt2)
 For line defined by points pt1 and pt3, find out on which side of the line is point pt3. More...
 
static QVector< SelfIntersectionselfIntersections (const QgsAbstractGeometry *geom, int part, int ring, double tolerance)
 Find self intersections in a polyline. More...
 
static bool setZValueFromPoints (const QgsPointSequence &points, QgsPoint &point)
 A Z dimension is added to point if one of the point in the list points is in 3D. More...
 
static double sqrDistance2D (const QgsPoint &pt1, const QgsPoint &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 bool verticesAtDistance (const QgsAbstractGeometry &geometry, double distance, QgsVertexId &previousVertex, QgsVertexId &nextVertex)
 Retrieves the vertices which are before and after the interpolated point at a specified distance along a linestring (or polygon boundary). More...
 
static QStringList wktGetChildBlocks (const QString &wkt, const QString &defaultType=QString())
 Parses a WKT string and returns of list of blocks contained in the WKT. More...
 
static QPair< QgsWkbTypes::Type, QString > wktReadBlock (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.

Since
QGIS 2.10

Definition at line 34 of file qgsgeometryutils.h.

Member Enumeration Documentation

◆ ComponentType

Note
not available in Python bindings
Enumerator
Vertex 
Ring 
Part 

Definition at line 479 of file qgsgeometryutils.h.

Member Function Documentation

◆ angleBetweenThreePoints()

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

Calculates the angle between the lines AB and BC, where AB and BC described by points a, b and b, c.

Parameters
x1x-coordinate of point a
y1y-coordinate of point a
x2x-coordinate of point b
y2y-coordinate of point b
x3x-coordinate of point c
y3y-coordinate of point c
Returns
angle between lines in radians. Returned value is undefined if two or more points are equal.

Definition at line 1153 of file qgsgeometryutils.cpp.

◆ angleOnCircle()

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 522 of file qgsgeometryutils.cpp.

◆ averageAngle() [1/2]

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

Angle between two linear segments.

Definition at line 1167 of file qgsgeometryutils.cpp.

◆ averageAngle() [2/2]

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
a1first angle (in radians)
a2second angle (in radians)
Returns
average angle (in radians)

Definition at line 1175 of file qgsgeometryutils.cpp.

◆ ccwAngle()

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 432 of file qgsgeometryutils.cpp.

◆ circleAngleBetween()

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 496 of file qgsgeometryutils.cpp.

◆ circleCenterRadius()

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

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

Definition at line 446 of file qgsgeometryutils.cpp.

◆ circleClockwise()

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

Returns true if circle is ordered clockwise.

Definition at line 484 of file qgsgeometryutils.cpp.

◆ circleLength()

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 528 of file qgsgeometryutils.cpp.

◆ circleTangentDirection()

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

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

Definition at line 617 of file qgsgeometryutils.cpp.

◆ closestPoint()

QgsPoint QgsGeometryUtils::closestPoint ( const QgsAbstractGeometry geometry,
const QgsPoint point 
)
static

Returns the nearest point on a segment of a geometry for the specified point.

The z and m values will be linearly interpolated between the two neighbouring vertices.

Definition at line 97 of file qgsgeometryutils.cpp.

◆ closestSegmentFromComponents()

template<class T >
static double QgsGeometryUtils::closestSegmentFromComponents ( T &  container,
ComponentType  ctype,
const QgsPoint pt,
QgsPoint segmentPt,
QgsVertexId vertexAfter,
int *  leftOf,
double  epsilon 
)
inlinestatic
Note
not available in Python bindings

Definition at line 487 of file qgsgeometryutils.h.

◆ closestVertex()

QgsPoint QgsGeometryUtils::closestVertex ( const QgsAbstractGeometry geom,
const QgsPoint pt,
QgsVertexId id 
)
static

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

On error null point will be returned and "id" argument will be invalid.

Definition at line 66 of file qgsgeometryutils.cpp.

◆ coefficients()

void QgsGeometryUtils::coefficients ( const QgsPoint pt1,
const QgsPoint pt2,
double &  a,
double &  b,
double &  c 
)
static

Return the coefficients (a, b, c for equation "ax + by + c = 0") of a line defined by points pt1 and pt2.

Parameters
pt1first point.
pt2second point.
aOutput parameter, a coefficient of the equation.
bOutput parameter, b coefficient of the equation.
cOutput parameter, c coefficient of the equation.
Since
QGIS 3.0

Definition at line 1085 of file qgsgeometryutils.cpp.

◆ distanceToVertex()

double QgsGeometryUtils::distanceToVertex ( const QgsAbstractGeometry geom,
QgsVertexId  id 
)
static

Returns the distance along a geometry from its first vertex to the specified vertex.

Parameters
geomgeometry
idvertex id to find distance to
Returns
distance to vertex (following geometry)
Since
QGIS 2.16

Definition at line 130 of file qgsgeometryutils.cpp.

◆ extractLineStrings()

QVector< QgsLineString * > QgsGeometryUtils::extractLineStrings ( const QgsAbstractGeometry geom)
static

Returns list of linestrings extracted from the passed geometry.

The returned objects have to be deleted by the caller.

Definition at line 30 of file qgsgeometryutils.cpp.

◆ gradient()

double QgsGeometryUtils::gradient ( const QgsPoint pt1,
const QgsPoint pt2 
)
static

Return the gradient of a line defined by points pt1 and pt2.

Parameters
pt1first point.
pt2second point.
Returns
The gradient of this linear entity, or infinity if vertical
Since
QGIS 3.0

Definition at line 1073 of file qgsgeometryutils.cpp.

◆ interpolateArcValue()

double QgsGeometryUtils::interpolateArcValue ( double  angle,
double  a1,
double  a2,
double  a3,
double  zm1,
double  zm2,
double  zm3 
)
static

Interpolate a value at given angle on circular arc given values (zm1, zm2, zm3) at three different angles (a1, a2, a3).

Since
3.0

Definition at line 779 of file qgsgeometryutils.cpp.

◆ interpolatePointOnLine() [1/2]

QgsPointXY QgsGeometryUtils::interpolatePointOnLine ( double  x1,
double  y1,
double  x2,
double  y2,
double  fraction 
)
static

Interpolates the position of a point a fraction of the way along the line from (x1, y1) to (x2, y2).

Usually the fraction should be between 0 and 1, where 0 represents the point at the start of the line (x1, y1) and 1 represents the end of the line (x2, y2). However, it is possible to use a fraction < 0 or > 1, in which case the returned point is extrapolated from the supplied line.

Since
QGIS 3.0.2
See also
interpolatePointOnLineByValue()

Definition at line 1057 of file qgsgeometryutils.cpp.

◆ interpolatePointOnLine() [2/2]

QgsPoint QgsGeometryUtils::interpolatePointOnLine ( const QgsPoint p1,
const QgsPoint p2,
double  fraction 
)
static

Interpolates the position of a point a fraction of the way along the line from p1 to p2.

Usually the fraction should be between 0 and 1, where 0 represents the point at the start of the line (p1) and 1 represents the end of the line (p2). However, it is possible to use a fraction < 0 or > 1, in which case the returned point is extrapolated from the supplied line.

Any Z or M values present in the input points will also be interpolated and present in the returned point.

Since
QGIS 3.0.2
See also
interpolatePointOnLineByValue()

Definition at line 1047 of file qgsgeometryutils.cpp.

◆ interpolatePointOnLineByValue()

QgsPointXY QgsGeometryUtils::interpolatePointOnLineByValue ( double  x1,
double  y1,
double  v1,
double  x2,
double  y2,
double  v2,
double  value 
)
static

Interpolates the position of a point along the line from (x1, y1) to (x2, y2).

The position is interpolated using a supplied target value and the value at the start of the line (v1) and end of the line (v2). The returned point will be linearly interpolated to match position corresponding to the target value.

Since
QGIS 3.0.2
See also
interpolatePointOnLine()

Definition at line 1064 of file qgsgeometryutils.cpp.

◆ leftOfLine()

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

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

A positive return value indicates the point is to the right of the line.

If the return value is 0, then the test was unsuccessful (e.g. due to testing a point exactly on the line, or exactly in line with the segment) and the result is undefined.

Definition at line 406 of file qgsgeometryutils.cpp.

◆ lineAngle()

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
x1x-coordinate of line start
y1y-coordinate of line start
x2x-coordinate of line end
y2y-coordinate of line end
Returns
angle in radians. Returned value is undefined if start and end point are the same.

Definition at line 1146 of file qgsgeometryutils.cpp.

◆ lineCircleIntersection()

bool QgsGeometryUtils::lineCircleIntersection ( const QgsPointXY center,
const double  radius,
const QgsPointXY linePoint1,
const QgsPointXY linePoint2,
QgsPointXY intersection 
)
static

Compute the intersection of a line and a circle.

If the intersection has two solutions (points), the closest point to the initial intersection point is returned.

Parameters
centerthe center of the circle
radiusthe radius of the circle
linePoint1a first point on the line
linePoint2a second point on the line
intersectionthe initial point and the returned intersection point
Returns
true if an intersection has been found

Definition at line 316 of file qgsgeometryutils.cpp.

◆ lineIntersection()

bool QgsGeometryUtils::lineIntersection ( const QgsPoint p1,
QgsVector  v1,
const QgsPoint p2,
QgsVector  v2,
QgsPoint intersection 
)
static

Computes the intersection between two lines.

Z dimension is supported and is retrieved from the first 3D point amongst p1 and p2.

Parameters
p1Point on the first line
v1Direction vector of the first line
p2Point on the second line
v2Direction vector of the second line
intersectionOutput parameter, the intersection point
Returns
Whether the lines intersect

Definition at line 238 of file qgsgeometryutils.cpp.

◆ linePerpendicularAngle()

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
x1x-coordinate of line start
y1y-coordinate of line start
x2x-coordinate of line end
y2y-coordinate of line end
Returns
angle in radians. Returned value is undefined if start and end point are the same.

Definition at line 1160 of file qgsgeometryutils.cpp.

◆ midpoint()

QgsPoint QgsGeometryUtils::midpoint ( const QgsPoint pt1,
const QgsPoint pt2 
)
static

Returns a middle point between points pt1 and pt2.

Z value is computed if one of this point have Z. M value is computed if one of this point have M.

Parameters
pt1first point.
pt2second point.
Returns
New point at middle between points pt1 and pt2.
  • Example:
    p = QgsPoint( 4, 6 ) # 2D point
    pr = midpoint ( p, QgsPoint( 2, 2 ) )
    # pr is a 2D point: 'Point (3 4)'
    pr = midpoint ( p, QgsPoint( QgsWkbTypes.PointZ, 2, 2, 2 ) )
    # pr is a 3D point: 'PointZ (3 4 1)'
    pr = midpoint ( p, QgsPoint( QgsWkbTypes.PointM, 2, 2, 0, 2 ) )
    # pr is a 3D point: 'PointM (3 4 1)'
    pr = midpoint ( p, QgsPoint( QgsWkbTypes.PointZM, 2, 2, 2, 2 ) )
    # pr is a 3D point: 'PointZM (3 4 1 1)'
Since
QGIS 3.0

Definition at line 1022 of file qgsgeometryutils.cpp.

◆ normalizedAngle()

double QgsGeometryUtils::normalizedAngle ( double  angle)
static

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

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

Definition at line 961 of file qgsgeometryutils.cpp.

◆ perpendicularSegment()

QgsLineString QgsGeometryUtils::perpendicularSegment ( const QgsPoint p,
const QgsPoint s1,
const QgsPoint s2 
)
static

Create a perpendicular line segment from p to segment [s1, s2].

Parameters
pThe point
s1The segment start point
s2The segment end point
Returns
A line (segment) from p to perpendicular point on segment [s1, s2]

Definition at line 1108 of file qgsgeometryutils.cpp.

◆ pointOnLineWithDistance()

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

Returns a point a specified distance toward a second point.

Definition at line 417 of file qgsgeometryutils.cpp.

◆ pointsFromWKT()

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

Returns a list of points contained in a WKT string.

Note
not available in Python bindings

Definition at line 799 of file qgsgeometryutils.cpp.

◆ pointsToGML2()

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

Returns a gml::coordinates DOM element.

Note
not available in Python bindings

Definition at line 903 of file qgsgeometryutils.cpp.

◆ pointsToGML3()

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

Returns a gml::posList DOM element.

Note
not available in Python bindings

Definition at line 927 of file qgsgeometryutils.cpp.

◆ pointsToJSON()

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

Returns a geoJSON coordinates string.

Note
not available in Python bindings

Definition at line 946 of file qgsgeometryutils.cpp.

◆ pointsToWKB()

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

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

Note
not available in Python bindings

Definition at line 867 of file qgsgeometryutils.cpp.

◆ pointsToWKT()

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

Returns a WKT coordinate list.

Note
not available in Python bindings

Definition at line 884 of file qgsgeometryutils.cpp.

◆ projectPointOnSegment()

static QgsPoint QgsGeometryUtils::projectPointOnSegment ( const QgsPoint p,
const QgsPoint s1,
const QgsPoint s2 
)
inlinestatic

Project the point on a segment.

Parameters
pThe point
s1The segment start point
s2The segment end point
Returns
The projection of the point on the segment

Definition at line 163 of file qgsgeometryutils.h.

◆ segmentIntersection()

bool QgsGeometryUtils::segmentIntersection ( const QgsPoint p1,
const QgsPoint p2,
const QgsPoint q1,
const QgsPoint q2,
QgsPoint intersectionPoint,
bool &  isIntersection,
const double  tolerance = 1e-8,
bool  acceptImproperIntersection = false 
)
static

Compute the intersection between two segments.

Parameters
p1First segment start point
p2First segment end point
q1Second segment start point
q2Second segment end point
intersectionPointOutput parameter, the intersection point
isIntersectionOutput parameter, return true if an intersection is found
toleranceThe tolerance to use
acceptImproperIntersectionBy default, this method returns true only if segments have proper intersection. If set true, returns also true if segments have improper intersection (end of one segment on other segment ; continuous segments).
Returns
Whether the segments intersect

Definition at line 257 of file qgsgeometryutils.cpp.

◆ segmentizeArc()

void QgsGeometryUtils::segmentizeArc ( const QgsPoint p1,
const QgsPoint p2,
const QgsPoint p3,
QgsPointSequence points,
double  tolerance = M_PI_2 / 90,
QgsAbstractGeometry::SegmentationToleranceType  toleranceType = QgsAbstractGeometry::MaximumAngle,
bool  hasZ = false,
bool  hasM = false 
)
static

Convert circular arc defined by p1, p2, p3 (p1/p3 being start resp.

end point, p2 lies on the arc) into a sequence of points.

Since
3.0

Definition at line 641 of file qgsgeometryutils.cpp.

◆ segmentMidPoint()

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

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

Z dimension is supported and is retrieved from the first 3D point amongst p1 and p2.

Definition at line 570 of file qgsgeometryutils.cpp.

◆ segmentSide()

int QgsGeometryUtils::segmentSide ( const QgsPoint pt1,
const QgsPoint pt3,
const QgsPoint pt2 
)
static

For line defined by points pt1 and pt3, find out on which side of the line is point pt3.

Returns -1 if pt3 on the left side, 1 if pt3 is on the right side or 0 if pt3 lies on the line.

Since
3.0

Definition at line 758 of file qgsgeometryutils.cpp.

◆ selfIntersections()

QVector< QgsGeometryUtils::SelfIntersection > QgsGeometryUtils::selfIntersections ( const QgsAbstractGeometry geom,
int  part,
int  ring,
double  tolerance 
)
static

Find self intersections in a polyline.

Parameters
geomThe geometry to check
partThe part of the geometry to check
ringThe ring of the geometry part to check
toleranceThe tolerance to use
Returns
The list of self intersections
Note
not available in Python bindings
Since
QGIS 2.12

Definition at line 366 of file qgsgeometryutils.cpp.

◆ setZValueFromPoints()

bool QgsGeometryUtils::setZValueFromPoints ( const QgsPointSequence points,
QgsPoint point 
)
static

A Z dimension is added to point if one of the point in the list points is in 3D.

Moreover, the Z value of point is updated with.

Parameters
pointsList of points in which a 3D point is searched.
pointThe point to update with Z dimension and value.
Returns
true if the point is updated, false otherwise
Since
QGIS 3.0

Definition at line 1202 of file qgsgeometryutils.cpp.

◆ sqrDistance2D()

double QgsGeometryUtils::sqrDistance2D ( const QgsPoint pt1,
const QgsPoint pt2 
)
static

Returns the squared 2D distance between two points.

Definition at line 194 of file qgsgeometryutils.cpp.

◆ sqrDistToLine()

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 199 of file qgsgeometryutils.cpp.

◆ sweepAngle()

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 540 of file qgsgeometryutils.cpp.

◆ verticesAtDistance()

bool QgsGeometryUtils::verticesAtDistance ( const QgsAbstractGeometry geometry,
double  distance,
QgsVertexId previousVertex,
QgsVertexId nextVertex 
)
static

Retrieves the vertices which are before and after the interpolated point at a specified distance along a linestring (or polygon boundary).

Parameters
geometryline or polygon geometry
distancedistance to traverse along geometry
previousVertexwill be set to previous vertex ID
nextVertexwill be set to next vertex ID
Returns
true if vertices were successfully retrieved
Note
if the distance coincides exactly with a vertex, then both previousVertex and nextVertex will be set to this vertex
Since
QGIS 3.0

Definition at line 149 of file qgsgeometryutils.cpp.

◆ wktGetChildBlocks()

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

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

Parameters
wktWKT string in the format "TYPE1 (contents1), TYPE2 (TYPE3 (contents3), TYPE4 (contents4))"
defaultTypedefault geometry type for children
Returns
list of WKT child block strings, e.g., List("TYPE1 (contents1)", "TYPE2 (TYPE3 (contents3), TYPE4 (contents4))")
Note
not available in Python bindings

Definition at line 986 of file qgsgeometryutils.cpp.

◆ wktReadBlock()

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")")

Note
not available in Python bindings

Definition at line 975 of file qgsgeometryutils.cpp.


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