Class: QgsPoint

class qgis.core.QgsPoint

Bases: QgsAbstractGeometry

Point geometry type, with support for z-dimension and m-values.

A QgsPoint represents a 2, 3 or 4-dimensional position, with X and Y and optional Z or M coordinates. Since it supports these additional dimensions, QgsPoint is used as the low-level storage of geometry coordinates throughout QGIS.

In some scenarios it is preferable to use the QgsPointXY class instead, which is lighter and has smaller memory requirements compared to QgsPoint. See the QgsPointXY documentation for examples of situations where it is appropriate to use QgsPointXY instead of QgsPoint.

See also

QgsPointXY

New in version 3.0.

QgsPoint(x: Optional[Union[QgsPoint, QPointF, QPoint, float]] = Py_None, y: Optional[float] = Py_None, z: Optional[float] = Py_None, m: Optional[float] = Py_None, wkbType: Optional[int] = Py_None) Construct a point with the provided initial coordinate values.

If wkbType is set to QgsWkbTypes.Point, QgsWkbTypes.PointZ, QgsWkbTypes.PointM or QgsWkbTypes.PointZM the type will be set accordingly. If it is left to the default QgsWkbTypes.Unknown, the type will be set based on the following rules:

  • If only x and y are specified, the type will be a 2D point.

  • If any or both of the Z and M are specified, the appropriate type will be created.

pt = QgsPoint(43.4, 5.3)
pt.asWkt() # Point(43.4 5.3)

pt_z = QgsPoint(120, 343, 77)
pt_z.asWkt() # PointZ(120 343 77)

pt_m = QgsPoint(33, 88, m=5)
pt_m.m() # 5
pt_m.wkbType() # 2001 (QgsWkbTypes.PointM)

pt = QgsPoint(30, 40, wkbType=QgsWkbTypes.PointZ)
pt.z() # nan
pt.wkbType() # 1001 (QgsWkbTypes.PointZ)

QgsPoint(QgsPoint)

Methods

addMValue

param mValue:

addZValue

param zValue:

adjacentVertices

param vertex:

asGml2

param doc:

asGml3

param doc:

asKml

param precision:

asQPainterPath

rtype:

QPainterPath

asWkb

rtype:

QByteArray

asWkt

param precision:

azimuth

Calculates Cartesian azimuth between this point and other one (clockwise in degree, starting from north)

boundary

rtype:

QgsAbstractGeometry

boundingBox

rtype:

QgsRectangle

boundingBoxIntersects

param rectangle:

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:

clear

clearCache

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

clone

rtype:

QgsPoint

closestSegment

param pt:

compareToSameClass

param other:

convertTo

param type:

coordinateSequence

rtype:

object

createEmptyWithSameType

rtype:

QgsPoint

deleteVertex

param position:

dimension

rtype:

int

distance

Returns the Cartesian 2D distance between this point and a specified x, y coordinate.

distance3D

Returns the Cartesian 3D distance between this point and a specified x, y, z coordinate.

distanceSquared

Returns the Cartesian 2D squared distance between this point a specified x, y coordinate.

distanceSquared3D

Returns the Cartesian 3D squared distance between this point and a specified x, y, z coordinate.

draw

param p:

dropMValue

rtype:

bool

dropZValue

rtype:

bool

fromWkb

param wkb:

fromWkt

param wkt:

geometryType

rtype:

str

hasChildGeometries

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

inclination

Calculates Cartesian inclination between this point and other one (starting from zenith = 0 to nadir = 180.

insertVertex

param position:

isEmpty

rtype:

bool

isValid

param flags:

m

Returns the point's m value.

moveVertex

param position:

nCoordinates

rtype:

int

nextVertex

param id:

normalize

partCount

rtype:

int

project

Returns a new point which corresponds to this point projected by a specified distance with specified angles (azimuth and inclination), using Cartesian mathematics.

removeDuplicateNodes

param epsilon:

ringCount

rtype:

int

segmentLength

param startVertex:

setM

Sets the point's m-value.

setX

Sets the point's x-coordinate.

setY

Sets the point's y-coordinate.

setZ

Sets the point's z-coordinate.

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.

swapXy

toCurveType

rtype:

QgsPoint

toQPointF

Returns the point as a QPointF.

transform

param ct:

vertexAngle

Angle undefined.

vertexAt

rtype:

QgsPoint

vertexCount

rtype:

int

vertexNumberFromVertexId

param id:

wkbSize

param flags:

x

Returns the point's x-coordinate.

y

Returns the point's y-coordinate.

z

Returns the point's z-coordinate.

Attributes

staticMetaObject

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

mValue (float = 0) –

Return type:

bool

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

zValue (float = 0) –

Return type:

bool

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

vertex (QgsVertexId) –

Return type:

Tuple[QgsVertexId, QgsVertexId]

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

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

precision (int = 17) –

Return type:

str

asQPainterPath(self) QPainterPath
Return type:

QPainterPath

asWkb(self, Union[QgsAbstractGeometry.WkbFlags, QgsAbstractGeometry.WkbFlag] = QgsAbstractGeometry.WkbFlags()) QByteArray
Return type:

QByteArray

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

precision (int = 17) –

Return type:

str

azimuth(self, other: QgsPoint) float

Calculates Cartesian azimuth between this point and other one (clockwise in degree, starting from north)

New in version 3.0.

Parameters:

other (QgsPoint) –

Return type:

float

boundary(self) QgsAbstractGeometry
Return type:

QgsAbstractGeometry

boundingBox(self) QgsRectangle
Return type:

QgsRectangle

boundingBoxIntersects(self, rectangle: QgsRectangle) bool
Parameters:

rectangle (QgsRectangle) –

Return type:

bool

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

clear(self)
clearCache(self)

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

clone(self) QgsPoint
Return type:

QgsPoint

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

convertTo(self, type: QgsWkbTypes.Type) bool
Parameters:

type (QgsWkbTypes.Type) –

Return type:

bool

coordinateSequence(self) object
Return type:

object

createEmptyWithSameType(self) QgsPoint
Return type:

QgsPoint

deleteVertex(self, position: QgsVertexId) bool
Parameters:

position (QgsVertexId) –

Return type:

bool

dimension(self) int
Return type:

int

distance(self, x: float, y: float) float

Returns the Cartesian 2D distance between this point and a specified x, y coordinate. In certain cases it may be more appropriate to call the faster distanceSquared() method, e.g., when comparing distances.

New in version 3.0.

distance(self, other: QgsPoint) -> float Returns the Cartesian 2D distance between this point and another point. In certain cases it may be more appropriate to call the faster distanceSquared() method, e.g., when comparing distances.

New in version 3.0.

Parameters:
  • x (float) –

  • y (float) –

Return type:

float

distance3D(self, x: float, y: float, z: float) float

Returns the Cartesian 3D distance between this point and a specified x, y, z coordinate. In certain cases it may be more appropriate to call the faster distanceSquared3D() method, e.g., when comparing distances.

New in version 3.0.

distance3D(self, other: QgsPoint) -> float Returns the Cartesian 3D distance between this point and another point. In certain cases it may be more appropriate to call the faster distanceSquared3D() method, e.g., when comparing distances.

New in version 3.0.

Parameters:
  • x (float) –

  • y (float) –

  • z (float) –

Return type:

float

distanceSquared(self, x: float, y: float) float

Returns the Cartesian 2D squared distance between this point a specified x, y coordinate. Calling this is faster than calling distance(), and may be useful in use cases such as comparing distances where the extra expense of calling distance() is not required.

See also

distance()

New in version 3.0.

distanceSquared(self, other: QgsPoint) -> float Returns the Cartesian 2D squared distance between this point another point. Calling this is faster than calling distance(), and may be useful in use cases such as comparing distances where the extra expense of calling distance() is not required.

See also

distance()

New in version 3.0.

Parameters:
  • x (float) –

  • y (float) –

Return type:

float

distanceSquared3D(self, x: float, y: float, z: float) float

Returns the Cartesian 3D squared distance between this point and a specified x, y, z coordinate. Calling this is faster than calling distance3D(), and may be useful in use cases such as comparing distances where the extra expense of calling distance3D() is not required.

See also

distance3D()

New in version 3.0.

distanceSquared3D(self, other: QgsPoint) -> float Returns the Cartesian 3D squared distance between this point and another point. Calling this is faster than calling distance3D(), and may be useful in use cases such as comparing distances where the extra expense of calling distance3D() is not required.

See also

distance3D()

New in version 3.0.

Parameters:
  • x (float) –

  • y (float) –

  • z (float) –

Return type:

float

draw(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.

inclination(self, other: QgsPoint) float

Calculates Cartesian inclination between this point and other one (starting from zenith = 0 to nadir = 180. Horizon = 90) Returns 90.0 if the distance between this point and other one is equal to 0 (same point).

New in version 3.0.

Parameters:

other (QgsPoint) –

Return type:

float

insertVertex(self, position: QgsVertexId, vertex: QgsPoint) bool
Parameters:
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]

m(self) float

Returns the point’s m value.

See also

setM()

See also

rm()

Return type:

float

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

bool

nCoordinates(self) int
Return type:

int

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

id (QgsVertexId) –

Return type:

Tuple[bool, QgsPoint]

normalize(self)
partCount(self) int
Return type:

int

project(self, distance: float, azimuth: float, inclination: float = 90) QgsPoint

Returns a new point which corresponds to this point projected by a specified distance with specified angles (azimuth and inclination), using Cartesian mathematics. M value is preserved.

Parameters:
  • distance (float) – distance to project

  • azimuth (float) – angle to project in X Y, clockwise in degrees starting from north

  • inclination (float = 90) – angle to project in Z (3D). If the point is 2D, the Z value is assumed to be 0.

Return type:

QgsPoint

Returns:

The point projected. If a 2D point is projected a 3D point will be returned except if inclination is 90. A 3D point is always returned if a 3D point is projected.

Example

p = QgsPoint( 1, 2 ) # 2D point
pr = p.project ( 1, 0 )
# pr is a 2D point: 'Point (1 3)'
pr = p.project ( 1, 0, 90 )
# pr is a 2D point: 'Point (1 3)'
pr = p.project (1, 0, 0 )
# pr is a 3D point: 'PointZ (1 2 nan)'
p = QgsPoint( 1, 2, 2, wkbType=QgsWkbTypes.PointZ ) # 3D point
pr = p.project ( 1, 0 )
# pr is a 3D point: 'PointZ (1 3 2)'
pr = p.project ( 1, 0, 90 )
# pr is a 3D point: 'PointZ (1 3 2)'
pr = p.project (1, 0, 0 )
# pr is a 3D point: 'PointZ (1 2 3)'

New in version 3.0.

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

  • useZValues (bool = False) –

Return type:

bool

ringCount(self, int=0) int
Return type:

int

segmentLength(self, startVertex: QgsVertexId) float
Parameters:

startVertex (QgsVertexId) –

Return type:

float

setM(self, m: float)

Sets the point’s m-value.

Note

calling this will have no effect if the point does not contain a m-dimension. Use addMValue() to add a m value and force the point to have an m dimension.

See also

m

See also

rm()

Parameters:

m (float) –

setX(self, x: float)

Sets the point’s x-coordinate.

See also

x

See also

rx()

Parameters:

x (float) –

setY(self, y: float)

Sets the point’s y-coordinate.

See also

y

See also

ry()

Parameters:

y (float) –

setZ(self, z: float)

Sets the point’s z-coordinate.

Note

calling this will have no effect if the point does not contain a z-dimension. Use addZValue() to add a z value and force the point to have a z dimension.

See also

z

See also

rz()

Parameters:

z (float) –

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

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) QgsPoint
Parameters:
  • hSpacing (float) –

  • vSpacing (float) –

  • dSpacing (float = 0) –

  • mSpacing (float = 0) –

Return type:

QgsPoint

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.

staticMetaObject = <PyQt5.QtCore.QMetaObject object>
swapXy(self)
toCurveType(self) QgsPoint
Return type:

QgsPoint

toQPointF(self) QPointF

Returns the point as a QPointF.

New in version 2.14.

Return type:

QPointF

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

Angle undefined. Always returns 0.0

Parameters:

vertex (QgsVertexId) – the vertex id

Return type:

float

Returns:

0.0

vertexAt(self, QgsVertexId) QgsPoint
Return type:

QgsPoint

vertexCount(self, int = 0, int = 0) int
Return type:

int

vertexNumberFromVertexId(self, id: QgsVertexId) int
Parameters:

id (QgsVertexId) –

Return type:

int

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

flags (Union[QgsAbstractGeometry.WkbFlags) –

Return type:

int

x(self) float

Returns the point’s x-coordinate.

See also

setX()

See also

rx()

Return type:

float

y(self) float

Returns the point’s y-coordinate.

See also

setY()

See also

ry()

Return type:

float

z(self) float

Returns the point’s z-coordinate.

See also

setZ()

See also

rz()

Return type:

float