QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
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 ¢erX, double ¢erY) |
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 double | distanceToVertex (const QgsAbstractGeometryV2 &geom, const QgsVertexId &id) |
Returns the distance along a geometry from its first vertex to the specified vertex. More... | |
static QList< QgsLineStringV2 * > | extractLineStrings (const QgsAbstractGeometryV2 *geom) |
Returns list of linestrings extracted from the passed geometry. More... | |
static QList< SelfIntersection > | getSelfIntersections (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 bool | verticesAtDistance (const QgsAbstractGeometryV2 &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="") |
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... | |
Contains various geometry utility functions.
Definition at line 31 of file qgsgeometryutils.h.
Enumerator | |
---|---|
VERTEX | |
RING | |
PART |
Definition at line 233 of file qgsgeometryutils.h.
|
static |
Returns vertices adjacent to a specified vertex within a geometry.
Definition at line 168 of file qgsgeometryutils.cpp.
|
static |
Returns true if an angle is between angle1 and angle3 on a circle described by angle1, angle2 and angle3.
Definition at line 499 of file qgsgeometryutils.cpp.
|
static |
Angle between two linear segments.
Definition at line 844 of file qgsgeometryutils.cpp.
|
static |
Averages two angles, correctly handling negative angles and ensuring the result is between 0 and 2 pi.
a1 | first angle (in radians) |
a2 | second angle (in radians) |
Definition at line 852 of file qgsgeometryutils.cpp.
|
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 395 of file qgsgeometryutils.cpp.
|
static |
Returns true if, in a circle, angle is between angle1 and angle2.
Definition at line 473 of file qgsgeometryutils.cpp.
|
static |
Returns radius and center of the circle through pt1, pt2, pt3.
Definition at line 409 of file qgsgeometryutils.cpp.
|
static |
Returns true if circle is ordered clockwise.
Definition at line 447 of file qgsgeometryutils.cpp.
|
static |
Length of a circular string segment defined by pt1, pt2, pt3.
Definition at line 505 of file qgsgeometryutils.cpp.
|
static |
Calculates the direction angle of a circle tangent (clockwise from north in radians)
Definition at line 590 of file qgsgeometryutils.cpp.
|
inlinestatic |
Definition at line 240 of file qgsgeometryutils.h.
|
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 63 of file qgsgeometryutils.cpp.
|
static |
Returns the distance along a geometry from its first vertex to the specified vertex.
geom | geometry |
id | vertex id to find distance to |
Definition at line 94 of file qgsgeometryutils.cpp.
|
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.
|
static |
Find self intersections in a polyline.
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 |
Definition at line 332 of file qgsgeometryutils.cpp.
|
static |
Returns < 0 if point(x/y) is left of the line x1,y1 -> x2,y2.
Definition at line 371 of file qgsgeometryutils.cpp.
|
static |
Calculates the direction of line joining two points in radians, clockwise from the north direction.
x1 | x-coordinate of line start |
y1 | y-coordinate of line start |
x2 | x-coordinate of line end |
y2 | y-coordinate of line end |
Definition at line 830 of file qgsgeometryutils.cpp.
|
static |
Compute the intersection between two lines.
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 |
Definition at line 288 of file qgsgeometryutils.cpp.
|
static |
Calculates the perpendicular angle to a line joining two points.
Returned angle is in radians, clockwise from the north direction.
x1 | x-coordinate of line start |
y1 | y-coordinate of line start |
x2 | x-coordinate of line end |
y2 | y-coordinate of line end |
Definition at line 837 of file qgsgeometryutils.cpp.
|
static |
Ensures that an angle is in the range 0 <= angle < 2 pi.
angle | angle in radians |
Definition at line 771 of file qgsgeometryutils.cpp.
|
static |
Returns a point a specified distance toward a second point.
Definition at line 380 of file qgsgeometryutils.cpp.
|
static |
Returns a list of points contained in a WKT string.
Definition at line 610 of file qgsgeometryutils.cpp.
|
static |
Returns a gml::coordinates DOM element.
Definition at line 713 of file qgsgeometryutils.cpp.
|
static |
Returns a gml::posList DOM element.
Definition at line 737 of file qgsgeometryutils.cpp.
|
static |
Returns a geoJSON coordinates string.
Definition at line 756 of file qgsgeometryutils.cpp.
|
static |
Returns a LinearRing { uint32 numPoints; Point points[numPoints]; }.
Definition at line 677 of file qgsgeometryutils.cpp.
|
static |
Returns a WKT coordinate list.
Definition at line 694 of file qgsgeometryutils.cpp.
|
inlinestatic |
Project the point on a segment.
p | The point |
s1 | The segment start point |
s2 | The segment end point |
Definition at line 110 of file qgsgeometryutils.h.
|
static |
Compute the intersection between two segments.
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 |
Definition at line 304 of file qgsgeometryutils.cpp.
|
static |
Calculates midpoint on circle passing through p1 and p2, closest to given coordinate.
Definition at line 547 of file qgsgeometryutils.cpp.
|
static |
Returns the squared 2D distance between two points.
Definition at line 244 of file qgsgeometryutils.cpp.
|
static |
Returns the squared distance between a point and a line.
Definition at line 249 of file qgsgeometryutils.cpp.
|
static |
Calculates angle of a circular string part defined by pt1, pt2, pt3.
Definition at line 517 of file qgsgeometryutils.cpp.
|
static |
Retrieves the vertices which are before and after the interpolated point at a specified distance along a linestring (or polygon boundary).
geometry | line or polygon geometry |
distance | distance to traverse along geometry |
previousVertex | will be set to previous vertex ID |
nextVertex | will be set to next vertex ID |
Definition at line 123 of file qgsgeometryutils.cpp.
|
static |
Parses a WKT string and returns of list of blocks contained in the WKT.
wkt | WKT string in the format "TYPE1 (contents1), TYPE2 (TYPE3 (contents3), TYPE4 (contents4))" |
defaultType | default geometry type for childen |
Definition at line 794 of file qgsgeometryutils.cpp.
|
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 785 of file qgsgeometryutils.cpp.