QGISA代码学习初步学习

1. 计算两点距离(续前例)
 
python   
from qgis.core import QgsGeometry

# 获取两个点要素
features = list(layer.getFeatures())[:2]
point1 = features[0].geometry().asPoint()
point2 = features[1].geometry().asPoint()

# 计算距离(单位:图层坐标系单位)
distance = QgsGeometry.fromPointXY(point1).distance(QgsGeometry.fromPointXY(point2))
print(f"距离:{distance} {layer.crs().mapUnits()}")
 
 
2. 创建缓冲区
 
python   
from qgis.core import QgsFeature

# 对第一个点创建100米缓冲区
feature = next(layer.getFeatures())
geom = feature.geometry()
buffer_geom = geom.buffer(100, 5)  # 距离100米,分段数5(控制平滑度)

# 创建缓冲区图层(面要素)
uri = "Polygon?crs=EPSG:4326"
buffer_layer = QgsVectorLayer(uri, "Buffer", "memory")
buffer_feature = QgsFeature()
buffer_feature.setGeometry(buffer_geom)
buffer_layer.dataProvider().addFeatures([buffer_feature])
QgsProject.instance().addMapLayer(buffer_layer)
 
 
五、可视化:符号化与标注
 
1. 设置图层符号样式
 
python   
# 设置点图层符号为红色五角星
symbol = QgsMarkerSymbol.createSimple({"name": "star", "color": "red", "size": "3"})
layer.renderer().setSymbol(symbol)
layer.triggerRepaint()  # 刷新显示
 
 
2. 启用标注
 
python   
layer.setLabelsEnabled(True)  # 启用标注
layer.setLabeling(QgsVectorLayerSimpleLabeling(layer.fields().indexFromName("name")))  # 基于字段"name"标注
layer.triggerRepaint()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值