Class: QgsCurve

class qgis.core.QgsCurve

Bases: QgsAbstractGeometry

Constructor for QgsCurve.

QgsCurve(QgsCurve)

Abstract base class for curved geometry type

New in version 2.10:

Methods

addToPainterPath

Adds a curve to a painter path.

adjacentVertices

param vertex

asKml

param precision

asQPainterPath

rtype

QPainterPath

asQPolygonF

Returns a QPolygonF representing the points.

boundary

rtype

QgsAbstractGeometry

boundingBox

rtype

QgsRectangle

calculateBoundingBox

Default calculator for the minimal bounding box for the geometry.

childCount

rtype

int

childGeometry

Returns pointer to child geometry (for geometries with child geometries - i.e. geom.

childPoint

param index

clearCache

clone

rtype

QgsCurve

coordinateSequence

rtype

object

curveSubstring

Returns a new curve representing a substring of this curve.

curveToLine

Returns a new line string geometry corresponding to a segmentized approximation of the curve.

drawAsPolygon

Draws the curve as a polygon on the specified QPainter.

endPoint

Returns the end point of the curve.

equals

Checks whether this curve exactly equals another curve.

hasChildGeometries

Returns whether the geometry has any child geometries (False for point / curve, True otherwise)

interpolatePoint

Returns an interpolated point on the curve at the specified distance.

isClosed

Returns True if the curve is closed.

isClosed2D

Returns true if the curve is closed.

isRing

Returns True if the curve is a ring.

isValid

param flags

nextVertex

param id

numPoints

Returns the number of points in the curve.

orientation

Returns the curve's orientation, e.g.

partCount

rtype

int

pointAt

Returns the point and vertex id of a point within the curve.

points

Returns a list of points within the curve.

reversed

Returns a reversed copy of the curve, where the direction of the curve has been flipped.

ringCount

param part

segmentize

Returns a geometry without curves.

setZMTypeFromSubGeometry

Updates the geometry type based on whether sub geometries contain z or m values.

sinuosity

Returns the curve sinuosity, which is the ratio of the curve length() to curve straightDistance2d().

startPoint

Returns the starting point of the curve.

straightDistance2d

Returns the straight distance of the curve, i.e. the direct/euclidean distance between the first and last vertex of the curve.

sumUpArea

Sums up the area of the curve by iterating over the vertices (shoelace formula).

toCurveType

rtype

QgsCurve

vertexAt

param id

vertexCount

param part

vertexNumberFromVertexId

param id

xAt

Returns the x-coordinate of the specified node in the line string.

yAt

Returns the y-coordinate of the specified node in the line string.

Attributes

Clockwise

CounterClockwise

Clockwise = 0
CounterClockwise = 1
class Orientation

Bases: int

addToPainterPath(self, path: QPainterPath)

Adds a curve to a painter path.

Parameters

path (QPainterPath) –

adjacentVertices(self, vertex: QgsVertexId) Tuple[QgsVertexId, QgsVertexId]
Parameters

vertex (QgsVertexId) –

Return type

Tuple[QgsVertexId, QgsVertexId]

asKml(self, precision: int = 17) str
Parameters

precision (int = 17) –

Return type

str

asQPainterPath(self) QPainterPath
Return type

QPainterPath

asQPolygonF(self) QPolygonF

Returns a QPolygonF representing the points.

Return type

QPolygonF

boundary(self) QgsAbstractGeometry
Return type

QgsAbstractGeometry

boundingBox(self) QgsRectangle
Return type

QgsRectangle

calculateBoundingBox(self) QgsRectangle

Default calculator for the minimal bounding box for the geometry. Derived classes should override this method if a more efficient bounding box calculation is available.

childCount(self) int
Return type

int

childGeometry(self, index: int) QgsAbstractGeometry

Returns pointer to child geometry (for geometries with child geometries - i.e. geom. collection / polygon)

Note

used for vertex_iterator implementation

New in version 3.0.

childPoint(self, index: int) QgsPoint
Parameters

index (int) –

Return type

QgsPoint

clearCache(self)
clone(self) QgsCurve
Return type

QgsCurve

coordinateSequence(self) object
Return type

object

curveSubstring(self, startDistance: float, endDistance: float) QgsCurve

Returns a new curve representing a substring of this curve.

The startDistance and endDistance arguments specify the length along the curve which the substring should start and end at. If the endDistance is greater than the total length of the curve then any “extra” length will be ignored.

If z or m values are present, the output z and m will be interpolated using the existing vertices’ z or m values.

New in version 3.4.

Parameters
  • startDistance (float) –

  • endDistance (float) –

Return type

QgsCurve

curveToLine(self, tolerance: float = M_PI_2 / 90, toleranceType: QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) QgsLineString

Returns a new line string geometry corresponding to a segmentized approximation of the curve.

Parameters
  • tolerance (float = M_PI_2/90) – segmentation tolerance

  • toleranceType (QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) – maximum segmentation angle or maximum difference between approximation and curve

Uses a MaximumAngle tolerance of 1 degrees by default (360 segments in a full circle)

Return type

QgsLineString

drawAsPolygon(self, p: QPainter)

Draws the curve as a polygon on the specified QPainter.

Parameters

p (QPainter) – destination QPainter

endPoint(self) QgsPoint

Returns the end point of the curve.

See also

startPoint()

Return type

QgsPoint

equals(self, other: QgsCurve) bool

Checks whether this curve exactly equals another curve.

New in version 3.0.

Parameters

other (QgsCurve) –

Return type

bool

hasChildGeometries(self) bool

Returns whether the geometry has any child geometries (False for point / curve, True otherwise)

Note

used for vertex_iterator implementation

New in version 3.0.

interpolatePoint(self, distance: float) QgsPoint

Returns an interpolated point on the curve at the specified distance.

If z or m values are present, the output z and m will be interpolated using the existing vertices’ z or m values.

If distance is negative, or is greater than the length of the curve, None will be returned.

New in version 3.4.

Parameters

distance (float) –

Return type

QgsPoint

isClosed(self) bool

Returns True if the curve is closed.

See also

isClosed2D()

Return type

bool

isClosed2D(self) bool

Returns true if the curve is closed.

Unlike isClosed. It looks only for XY coordinates.

See also

isClosed()

New in version 3.20.

Return type

bool

isRing(self) bool

Returns True if the curve is a ring.

Return type

bool

isValid(self, flags: int = 0) Tuple[bool, str]
Parameters

flags (int = 0) –

Return type

Tuple[bool, str]

nextVertex(self, id: QgsVertexId) Tuple[bool, QgsPoint]
Parameters

id (QgsVertexId) –

Return type

Tuple[bool, QgsPoint]

numPoints(self) int

Returns the number of points in the curve.

Return type

int

orientation(self) QgsCurve.Orientation

Returns the curve’s orientation, e.g. clockwise or counter-clockwise.

Warning

The result is not predictable for non-closed curves.

New in version 3.6.

Return type

QgsCurve.Orientation

partCount(self) int
Return type

int

pointAt(self, node: int) Tuple[bool, QgsPoint, QgsVertexId.VertexType]

Returns the point and vertex id of a point within the curve.

Parameters

node (int) – node number, where the first node is 0

Return type

Tuple[bool, QgsPoint, QgsVertexId.VertexType]

Returns

  • True if node exists within the curve

  • point: will be set to point at corresponding node in the curve

  • type: will be set to the vertex type of the node

points(self) List[QgsPoint]

Returns a list of points within the curve.

Return type

List[QgsPoint]

reversed(self) QgsCurve

Returns a reversed copy of the curve, where the direction of the curve has been flipped.

New in version 2.14.

Return type

QgsCurve

ringCount(self, part: int = 0) int
Parameters

part (int = 0) –

Return type

int

segmentize(self, tolerance: float = M_PI_2 / 90, toleranceType: QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) QgsCurve

Returns a geometry without curves. Caller takes ownership

Parameters
  • tolerance (float = M_PI_2/90) – segmentation tolerance

  • toleranceType (QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) – maximum segmentation angle or maximum difference between approximation and curve

Return type

QgsCurve

setZMTypeFromSubGeometry(self, subggeom: QgsAbstractGeometry, baseGeomType: QgsWkbTypes.Type)

Updates the geometry type based on whether sub geometries contain z or m values.

sinuosity(self) float

Returns the curve sinuosity, which is the ratio of the curve length() to curve straightDistance2d(). Larger numbers indicate a more “sinuous” curve (i.e. more “bendy”). The minimum value returned of 1.0 indicates a perfectly straight curve.

If a curve isClosed(), it has infinite sinuosity and will return NaN.

New in version 3.2.

Return type

float

startPoint(self) QgsPoint

Returns the starting point of the curve.

See also

endPoint()

Return type

QgsPoint

straightDistance2d(self) float

Returns the straight distance of the curve, i.e. the direct/euclidean distance between the first and last vertex of the curve. (Also known as “as the crow flies” distance).

New in version 3.2.

Return type

float

sumUpArea(self) float

Sums up the area of the curve by iterating over the vertices (shoelace formula).

Return type

float

toCurveType(self) QgsCurve
Return type

QgsCurve

vertexAt(self, id: QgsVertexId) QgsPoint
Parameters

id (QgsVertexId) –

Return type

QgsPoint

vertexCount(self, part: int = 0, ring: int = 0) int
Parameters
  • part (int = 0) –

  • ring (int = 0) –

Return type

int

vertexNumberFromVertexId(self, id: QgsVertexId) int
Parameters

id (QgsVertexId) –

Return type

int

xAt(self, index: int) float

Returns the x-coordinate of the specified node in the line string.

Parameters

index (int) – index of node, where the first node in the line is 0

Return type

float

Returns

x-coordinate of node, or 0.0 if index is out of bounds

yAt(self, index: int) float

Returns the y-coordinate of the specified node in the line string.

Parameters

index (int) – index of node, where the first node in the line is 0

Return type

float

Returns

y-coordinate of node, or 0.0 if index is out of bounds