Class: QgsCompoundCurve

class qgis.core.QgsCompoundCurve

Bases: QgsCurve

Compound curve geometry type

New in version 2.10:

Methods

addCurve

Adds a curve to the geometry (takes ownership).

addMValue

param mValue:

addToPainterPath

param path:

addVertex

Adds a vertex to the end of the geometry.

addZValue

param zValue:

asGml2

param doc:

asGml3

param doc:

asWkb

param flags:

asWkt

param precision:

boundingBoxIntersects

param rectangle:

calculateBoundingBox

rtype:

QgsRectangle

childCount

Returns number of child geometries (for geometries with child geometries) or child points (for geometries without child geometries - i.e. curve / point).

childGeometry

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

childPoint

Returns point at index (for geometries without child geometries - i.e. curve / point).

clear

clearCache

Clears any cached parameters associated with the geometry, e.g., bounding boxes

clone

rtype:

QgsCompoundCurve

close

Appends first point if not already closed.

closestSegment

param pt:

compareToSameClass

param other:

condenseCurves

Condenses the curves in this geometry by combining adjacent linestrings a to a single continuous linestring, and combining adjacent circularstrings to a single continuous circularstring.

createEmptyWithSameType

rtype:

QgsCompoundCurve

curveAt

Returns the curve at the specified index.

curveSubstring

param startDistance:

curveToLine

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

deleteVertex

param position:

dimension

rtype:

int

draw

param p:

drawAsPolygon

param p:

dropMValue

rtype:

bool

dropZValue

rtype:

bool

endPoint

rtype:

QgsPoint

equals

param other:

fromWkb

param wkb:

fromWkt

param wkt:

geometryType

rtype:

str

hasChildGeometries

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

hasCurvedSegments

rtype:

bool

indexOf

param point:

insertVertex

param position:

interpolatePoint

param distance:

isEmpty

rtype:

bool

isValid

param flags:

length

rtype:

float

moveVertex

param position:

nCurves

Returns the number of curves in the geometry.

numPoints

rtype:

int

pointAt

param node:

points

rtype:

List[QgsPoint]

removeCurve

Removes a curve from the geometry.

removeDuplicateNodes

param epsilon:

reversed

rtype:

QgsCompoundCurve

scroll

param firstVertexIndex:

segmentLength

param startVertex:

setZMTypeFromSubGeometry

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

simplifiedTypeRef

rtype:

QgsAbstractGeometry

snappedToGrid

param hSpacing:

sortIndex

Returns the sort index for the geometry, used in the compareTo() method to compare geometries of different types.

startPoint

rtype:

QgsPoint

sumUpArea

rtype:

float

swapXy

toggleCircularAtVertex

Converts the vertex at the given position from/to circular

transform

param ct:

vertexAngle

param vertex:

wkbSize

param flags:

xAt

param index:

yAt

param index:

addCurve(self, c: QgsCurve, extendPrevious: bool = False)

Adds a curve to the geometry (takes ownership).

Since QGIS 3.20, if extendPrevious is True, then adding a LineString when the last existing curve in the compound curve is also a LineString will cause the existing linestring to be extended with the newly added LineString vertices instead of appending a whole new LineString curve to the compound curve. This can result in simplified compound curves with lesser number of component curves while still being topologically identical to the desired result.

Parameters:
  • c (QgsCurve) –

  • extendPrevious (bool = False) –

addMValue(self, mValue: float = 0) bool
Parameters:

mValue (float = 0) –

Return type:

bool

addToPainterPath(self, path: QPainterPath)
Parameters:

path (QPainterPath) –

addVertex(self, pt: QgsPoint)

Adds a vertex to the end of the geometry.

Parameters:

pt (QgsPoint) –

addZValue(self, zValue: float = 0) bool
Parameters:

zValue (float = 0) –

Return type:

bool

asGml2(self, doc: QDomDocument, precision: int = 17, ns: str = '', axisOrder: QgsAbstractGeometry.AxisOrder = QgsAbstractGeometry.AxisOrder.XY) QDomElement
Parameters:
  • doc (QDomDocument) –

  • precision (int = 17) –

  • ns (str = '') –

  • axisOrder (QgsAbstractGeometry.AxisOrder = QgsAbstractGeometry.AxisOrder.XY) –

Return type:

QDomElement

asGml3(self, doc: QDomDocument, precision: int = 17, ns: str = '', axisOrder: QgsAbstractGeometry.AxisOrder = QgsAbstractGeometry.AxisOrder.XY) QDomElement
Parameters:
  • doc (QDomDocument) –

  • precision (int = 17) –

  • ns (str = '') –

  • axisOrder (QgsAbstractGeometry.AxisOrder = QgsAbstractGeometry.AxisOrder.XY) –

Return type:

QDomElement

asWkb(self, flags: QgsAbstractGeometry.WkbFlags | QgsAbstractGeometry.WkbFlag = QgsAbstractGeometry.WkbFlags()) QByteArray
Parameters:

flags (Union[QgsAbstractGeometry.WkbFlags) –

Return type:

QByteArray

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

precision (int = 17) –

Return type:

str

boundingBoxIntersects(self, rectangle: QgsRectangle) bool
Parameters:

rectangle (QgsRectangle) –

Return type:

bool

calculateBoundingBox(self) QgsRectangle
Return type:

QgsRectangle

childCount(self) int

Returns number of child geometries (for geometries with child geometries) or child points (for geometries without child geometries - i.e. curve / point)

Note

used for vertex_iterator implementation

New in version 3.0.

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

Returns point at index (for geometries without child geometries - i.e. curve / point)

Note

used for vertex_iterator implementation

New in version 3.0.

clear(self)
clearCache(self)

Clears any cached parameters associated with the geometry, e.g., bounding boxes

clone(self) QgsCompoundCurve
Return type:

QgsCompoundCurve

close(self)

Appends first point if not already closed.

closestSegment(self, pt: QgsPoint, epsilon: float = 4 * DBL_EPSILON) Tuple[float, QgsPoint, QgsVertexId, int]
Parameters:
  • pt (QgsPoint) –

  • epsilon (float = 4*DBL_EPSILON) –

Return type:

Tuple[float, QgsPoint, QgsVertexId, int]

compareToSameClass(self, other: QgsAbstractGeometry) int
Parameters:

other (QgsAbstractGeometry) –

Return type:

int

condenseCurves(self)

Condenses the curves in this geometry by combining adjacent linestrings a to a single continuous linestring, and combining adjacent circularstrings to a single continuous circularstring.

New in version 3.20.

createEmptyWithSameType(self) QgsCompoundCurve
Return type:

QgsCompoundCurve

curveAt(self, i: int) QgsCurve

Returns the curve at the specified index.

Parameters:

i (int) –

Return type:

QgsCurve

curveSubstring(self, startDistance: float, endDistance: float) QgsCompoundCurve
Parameters:
  • startDistance (float) –

  • endDistance (float) –

Return type:

QgsCompoundCurve

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

Return type:

QgsLineString

deleteVertex(self, position: QgsVertexId) bool
Parameters:

position (QgsVertexId) –

Return type:

bool

dimension(self) int
Return type:

int

draw(self, p: QPainter)
Parameters:

p (QPainter) –

drawAsPolygon(self, p: QPainter)
Parameters:

p (QPainter) –

dropMValue(self) bool
Return type:

bool

dropZValue(self) bool
Return type:

bool

endPoint(self) QgsPoint
Return type:

QgsPoint

equals(self, other: QgsCurve) bool
Parameters:

other (QgsCurve) –

Return type:

bool

fromWkb(self, wkb: QgsConstWkbPtr) bool
Parameters:

wkb (QgsConstWkbPtr) –

Return type:

bool

fromWkt(self, wkt: str) bool
Parameters:

wkt (str) –

Return type:

bool

geometryType(self) str
Return type:

str

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.

hasCurvedSegments(self) bool
Return type:

bool

indexOf(self, point: QgsPoint) int
Parameters:

point (QgsPoint) –

Return type:

int

insertVertex(self, position: QgsVertexId, vertex: QgsPoint) bool
Parameters:
Return type:

bool

interpolatePoint(self, distance: float) QgsPoint
Parameters:

distance (float) –

Return type:

QgsPoint

isEmpty(self) bool
Return type:

bool

isValid(self, flags: Qgis.GeometryValidityFlags | Qgis.GeometryValidityFlag = Qgis.GeometryValidityFlags()) Tuple[bool, str]
Parameters:

flags (Union[Qgis.GeometryValidityFlags) –

Return type:

Tuple[bool, str]

length(self) float
Return type:

float

moveVertex(self, position: QgsVertexId, newPos: QgsPoint) bool
Parameters:
Return type:

bool

nCurves(self) int

Returns the number of curves in the geometry.

Return type:

int

numPoints(self) int
Return type:

int

pointAt(self, node: int, point: QgsPoint) Tuple[bool, Qgis.VertexType]
Parameters:
Return type:

Tuple[bool, Qgis.VertexType]

points(self) List[QgsPoint]
Return type:

List[QgsPoint]

removeCurve(self, i: int)

Removes a curve from the geometry.

Parameters:

i (int) – index of curve to remove

removeDuplicateNodes(self, epsilon: float = 4 * DBL_EPSILON, useZValues: bool = False) bool
Parameters:
  • epsilon (float = 4*DBL_EPSILON) –

  • useZValues (bool = False) –

Return type:

bool

reversed(self) QgsCompoundCurve
Return type:

QgsCompoundCurve

scroll(self, firstVertexIndex: int)
Parameters:

firstVertexIndex (int) –

segmentLength(self, startVertex: QgsVertexId) float
Parameters:

startVertex (QgsVertexId) –

Return type:

float

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

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

simplifiedTypeRef(self) QgsAbstractGeometry
Return type:

QgsAbstractGeometry

snappedToGrid(self, hSpacing: float, vSpacing: float, dSpacing: float = 0, mSpacing: float = 0) QgsCompoundCurve
Parameters:
  • hSpacing (float) –

  • vSpacing (float) –

  • dSpacing (float = 0) –

  • mSpacing (float = 0) –

Return type:

QgsCompoundCurve

sortIndex(self) int

Returns the sort index for the geometry, used in the compareTo() method to compare geometries of different types.

New in version 3.20.

startPoint(self) QgsPoint
Return type:

QgsPoint

sumUpArea(self) float
Return type:

float

swapXy(self)
toggleCircularAtVertex(self, position: QgsVertexId) bool

Converts the vertex at the given position from/to circular

Return type:

bool

Returns:

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

New in version 3.20.

Parameters:

position (QgsVertexId) –

transform(self, ct: QgsCoordinateTransform, d: Qgis.TransformDirection = Qgis.TransformDirection.Forward, transformZ: bool = False)
transform(self, t: QTransform, zTranslate: float = 0, zScale: float = 1, mTranslate: float = 0, mScale: float = 1) None
transform(self, transformer: QgsAbstractGeometryTransformer, feedback: QgsFeedback = None) bool
Parameters:
  • ct (QgsCoordinateTransform) –

  • d (Qgis.TransformDirection = Qgis.TransformDirection.Forward) –

  • transformZ (bool = False) –

vertexAngle(self, vertex: QgsVertexId) float
Parameters:

vertex (QgsVertexId) –

Return type:

float

wkbSize(self, flags: QgsAbstractGeometry.WkbFlags | QgsAbstractGeometry.WkbFlag = QgsAbstractGeometry.WkbFlags()) int
Parameters:

flags (Union[QgsAbstractGeometry.WkbFlags) –

Return type:

int

xAt(self, index: int) float
Parameters:

index (int) –

Return type:

float

yAt(self, index: int) float
Parameters:

index (int) –

Return type:

float