Class: QgsCircularString

class qgis.core.QgsCircularString

Bases: QgsCurve

Circular string geometry type

QgsCircularString() Constructs an empty circular string.

QgsCircularString(p1: QgsPoint, p2: QgsPoint, p3: QgsPoint) Constructs a circular string with a single arc passing through p1, p2 and p3.

New in version 3.2.

QgsCircularString(x: Iterable[float], y: Iterable[float], z: Iterable[float] = [], m: Iterable[float] = []) Construct a circular string from arrays of coordinates. If the z or m arrays are non-empty then the resultant circular string will have z and m types accordingly.

This constructor is more efficient then calling setPoints().

If the sizes of x and y are non-equal then the resultant circular string will be created using the minimum size of these arrays.

Warning

It is the caller’s responsibility to ensure that the supplied arrays are of odd sizes.

New in version 3.20.

QgsCircularString(QgsCircularString)

Methods

addMValue

param mValue:

addToPainterPath

param path:

addZValue

param zValue:

append

Appends the contents of another circular string to the end of this circular string.

asGml2

param doc:

asGml3

param doc:

asWkb

param flags:

asWkt

param precision:

calculateBoundingBox

Default calculator for the minimal bounding box for the geometry.

calculateBoundingBox3D

rtype:

QgsBox3D

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:

QgsCircularString

closestSegment

param pt:

compareToSameClass

param other:

createEmptyWithSameType

rtype:

QgsCircularString

curveSubstring

param startDistance:

curveToLine

param tolerance:

deleteVertex

param position:

dimension

rtype:

int

draw

param p:

drawAsPolygon

param p:

dropMValue

rtype:

bool

dropZValue

rtype:

bool

endPoint

rtype:

QgsPoint

equals

param other:

fromTwoPointsAndCenter

Creates a circular string with a single arc representing the curve from p1 to p2 with the specified center.

fromWkb

param wkb:

fromWkt

param wkt:

fuzzyDistanceEqual

param other:

fuzzyEqual

param other:

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

mAt

param index:

moveVertex

param position:

numPoints

rtype:

int

pointAt

param node:

pointN

Returns the point at index i within the circular string.

points

rtype:

List[QgsPoint]

removeDuplicateNodes

param epsilon:

reversed

rtype:

QgsCircularString

scroll

param firstVertexIndex:

segmentLength

param startVertex:

setPoints

Sets the circular string's points

setZMTypeFromSubGeometry

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

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

transform

param ct:

vertexAngle

param vertex:

wkbSize

param flags:

xAt

param index:

yAt

param index:

zAt

param index:

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

mValue (float = 0) –

Return type:

bool

addToPainterPath(self, path: QPainterPath)
Parameters:

path (QPainterPath) –

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

zValue (float = 0) –

Return type:

bool

append(self, string: QgsCircularString)

Appends the contents of another circular string to the end of this circular string.

Parameters:

string (QgsCircularString) – circular string to append. Ownership is not transferred.

Warning

It is the caller’s responsibility to ensure that the first point in the appended string matches the last point in the existing curve, or the result will be undefined.

New in version 3.20.

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

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.

calculateBoundingBox3D(self) QgsBox3D
Return type:

QgsBox3D

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

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

childPoint(self, index: int) QgsPoint

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

Note

used for vertex_iterator implementation

clear(self)
clearCache(self)

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

clone(self) QgsCircularString
Return type:

QgsCircularString

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

createEmptyWithSameType(self) QgsCircularString
Return type:

QgsCircularString

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

  • endDistance (float) –

Return type:

QgsCircularString

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

  • toleranceType (QgsAbstractGeometry.SegmentationToleranceType = QgsAbstractGeometry.MaximumAngle) –

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

fromTwoPointsAndCenter(p1: QgsPoint, p2: QgsPoint, center: QgsPoint, useShortestArc: bool = True) QgsCircularString

Creates a circular string with a single arc representing the curve from p1 to p2 with the specified center.

If useShortestArc is True, then the arc returned will be that corresponding to the shorter arc from p1 to p2. If it is False, the longer arc from p1 to p2 will be used (i.e. winding the other way around the circle).

New in version 3.2.

Parameters:
Return type:

QgsCircularString

fromWkb(self, wkb: QgsConstWkbPtr) bool
Parameters:

wkb (QgsConstWkbPtr) –

Return type:

bool

fromWkt(self, wkt: str) bool
Parameters:

wkt (str) –

Return type:

bool

fuzzyDistanceEqual(self, other: QgsAbstractGeometry, epsilon: float = 1e-08) bool
Parameters:
Return type:

bool

fuzzyEqual(self, other: QgsAbstractGeometry, epsilon: float = 1e-08) bool
Parameters:
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

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

mAt(self, index: int) float
Parameters:

index (int) –

Return type:

float

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

bool

numPoints(self) int
Return type:

int

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

Tuple[bool, Qgis.VertexType]

pointN(self, i: int) QgsPoint

Returns the point at index i within the circular string.

Parameters:

i (int) –

Return type:

QgsPoint

points(self) List[QgsPoint]
Return type:

List[QgsPoint]

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) QgsCircularString
Return type:

QgsCircularString

scroll(self, firstVertexIndex: int)
Parameters:

firstVertexIndex (int) –

segmentLength(self, startVertex: QgsVertexId) float
Parameters:

startVertex (QgsVertexId) –

Return type:

float

setPoints(self, points: Iterable[QgsPoint])

Sets the circular string’s points

Parameters:

points (Iterable[QgsPoint]) –

setZMTypeFromSubGeometry(self, subggeom: QgsAbstractGeometry, baseGeomType: Qgis.WkbType)

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

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

  • vSpacing (float) –

  • dSpacing (float = 0) –

  • mSpacing (float = 0) –

Return type:

QgsCircularString

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

zAt(self, index: int) float
Parameters:

index (int) –

Return type:

float