Class: QgsCompoundCurve¶
- class qgis.core.QgsCompoundCurve¶
Bases:
QgsCurve
Compound curve geometry type
New in version 2.10:
Methods
Adds a curve to the geometry (takes ownership).
- param mValue:
- param path:
Adds a vertex to the end of the geometry.
- param zValue:
- param doc:
- param doc:
- param flags:
- param precision:
- param rectangle:
- rtype:
QgsRectangle
Returns number of child geometries (for geometries with child geometries) or child points (for geometries without child geometries - i.e. curve / point).
Returns pointer to child geometry (for geometries with child geometries - i.e. geom.
Returns point at index (for geometries without child geometries - i.e. curve / point).
Clears any cached parameters associated with the geometry, e.g., bounding boxes
- rtype:
QgsCompoundCurve
Appends first point if not already closed.
- param pt:
- param other:
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.
- rtype:
QgsCompoundCurve
Returns the curve at the specified index.
- param startDistance:
Returns a new line string geometry corresponding to a segmentized approximation of the curve.
- param position:
- rtype:
int
- param p:
- param p:
- rtype:
bool
- rtype:
bool
- rtype:
QgsPoint
- param other:
- param wkb:
- param wkt:
- rtype:
str
Returns whether the geometry has any child geometries (
False
for point / curve,True
otherwise)- rtype:
bool
- param point:
- param position:
- param distance:
- rtype:
bool
- param flags:
- rtype:
float
- param index:
- param position:
Returns the number of curves in the geometry.
- rtype:
int
- param node:
- rtype:
List[QgsPoint]
Removes a curve from the geometry.
- param epsilon:
- rtype:
QgsCompoundCurve
- param firstVertexIndex:
- param startVertex:
Updates the geometry type based on whether sub geometries contain z or m values.
- rtype:
QgsAbstractGeometry
- param hSpacing:
Returns the sort index for the geometry, used in the
compareTo()
method to compare geometries of different types.- rtype:
QgsPoint
- rtype:
float
Converts the vertex at the given position from/to circular
- param ct:
- param vertex:
- param flags:
- param index:
- param index:
- param index:
- addCurve(self, c: QgsCurve, extendPrevious: bool = False)¶
Adds a curve to the geometry (takes ownership).
Since QGIS 3.20, if
extendPrevious
isTrue
, 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:
- 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:
- 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:
- curveAt(self, i: int) QgsCurve ¶
Returns the curve at the specified index.
- Parameters:
i (int) –
- Return type:
- curveSubstring(self, startDistance: float, endDistance: float) QgsCompoundCurve ¶
- Parameters:
startDistance (float) –
endDistance (float) –
- Return type:
- 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:
- 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
- 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
- insertVertex(self, position: QgsVertexId, vertex: QgsPoint) bool ¶
- Parameters:
position (QgsVertexId) –
vertex (QgsPoint) –
- Return type:
bool
- 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:
position (QgsVertexId) –
newPos (QgsPoint) –
- 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:
node (int) –
point (QgsPoint) –
- Return type:
Tuple[bool, Qgis.VertexType]
- 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:
- scroll(self, firstVertexIndex: int)¶
- Parameters:
firstVertexIndex (int) –
- segmentLength(self, startVertex: QgsVertexId) float ¶
- Parameters:
startVertex (QgsVertexId) –
- Return type:
float
- setZMTypeFromSubGeometry(self, subggeom: QgsAbstractGeometry, baseGeomType: Qgis.WkbType)¶
Updates the geometry type based on whether sub geometries contain z or m values.
- simplifiedTypeRef(self) QgsAbstractGeometry ¶
- Return type:
- 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:
- 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.
- 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
- zAt(self, index: int) float ¶
- Parameters:
index (int) –
- Return type:
float