QgsPoint类

QGIS中的QgsPoint类用于表示二维或三维点,包括X、Y、Z坐标和可选的M值。类提供了计算距离、判断是否为3D点等方法。QgsPointXY则专用于二维坐标。文章还介绍了如何操作点的坐标以及与其他QGIS类型的交互。

在 QGIS 中,QgsPoint 类是用于表示二维或三维点的类。它由 X、Y 和 Z 坐标组成,并且可以带有一个可选的 M 值(也称为测量值)。以下是 QgsPoint 类的主要参数介绍:

  1. x:表示点的横向坐标值。
  2. y:表示点的纵向坐标值。
  3. z:表示点的垂直(高程)坐标值,通常在三维场景下使用。
  4. m:表示点的测量值,用于存储关于该点的附加信息,例如距离、高程差等。

除了这些基本参数外,QgsPoint 类还提供了许多其他的方法和属性,例如:

  1. distance(other):计算该点与另一个点之间的欧几里得距离。
  2. is3D():判断该点是否包含 Z 坐标。
  3. setX(x):设置该点的横向坐标。
  4. setY(y):设置该点的纵向坐标。
  5. setZ(z):设置该点的垂直坐标。
  6. setM(m):设置该点的测量值。

QgsPoint 类还可以和其他的 QGIS 类型进行交互,例如 QgsGeometry 类和 QgsFeature 类等。通过使用这些类,可以实现更加灵活和强大的空间数据处理和分析功能。

  • QgsPoint和QgsPointXY的区别

    QgsPoint和QgsPointXY都是在QGIS中用于表示点的类,它们的区别在于坐标系的不同。

    QgsPoint类将点的坐标存在X,Y,Z三个属性中,其中X和Y表示点在地理坐标系中的经度和纬度,而Z则表示高程值。这种方式适用于经纬度坐标系或地理坐标系。

    QgsPointXY类仅将点的X,Y坐标存储在一个对应属性中,不包含Z坐标。这种方式适用于投影坐标系,其中X和Y都是平面坐标值。

    因此,如果需要处理经纬度等地理坐标系下的点,则应使用QgsPoint类;如果要处理投影坐标系下的点,则应使用QgsPointXY类。

  • p = QgsPoint()   p.setZ(30)p.addZValue(30)区别

    p.setZ(30)是将点对象p的高程值设置为30,即在三维坐标系下,该点的高程值为30个单位。

    p.addZValue(30)是给点对象p的高程值增加30个单位(如果之前未设置高程值,则默认为0)。这通常用于处理三维数据,例如在地图上显示海拔高度等信息,或者在3D模型中显示物体的高度等信息。

    因此,这两个方法适用于不同的场景和目的。setZ()方法可以精确地设置点的高程值,而addZValue()方法则改变了点的高程值,使其更具有空间感,并可以在地图或3D场景中展示出来。

from qgis.core import QgsPoint

p = QgsPoint()  # 创建一个点对象
p.isValid()  # 判断点对象是否有效 (True, '')
p.geometryType()  # 'Point'  返回几何对象的类型
p.wkbType()  # 1  返回WKB类型,1表示点类型
p.dimension()  # 0 返回点的维度,因为点是0维对象,所以返回0
p.isEmpty()  # True

p.setX(30)
p.isEmpty()  # True 只设置了X或Y坐标而未设置另一个坐标,则点对象仍然被视为为空
p.setY(20)
p.isEmpty()  # False

p.addZValue(3.3)  # 将点的高程值增加3.3个单位
p.swapXy()  # 交换点的X坐标和Y坐标
p.dropZValue()  # 移除点的高程值

p.setZ(2)  # 设置点的高程值为2

p.asWkt()  # 将点对象转换成WKT格式的字符串
p.asKml()  # 将点对象转换成KML格式的字符串
p.fromWkt('Point(4 6)')  # True 从WKT格式的字符串中重建点对象

p1 = QgsPoint(3, 4)  # 创建一个二维的点
p2 = QgsPoint(3, 4, m=12)  # 创建一个有M值的二维点
p3 = QgsPoint(3, 4, z=7)  # 创建一个三维点
p4 = QgsPoint(3, 4, 5, 6)  # 创建一个有M值的三维点

 

 参考:pyqgis2.01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值