You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QGIS中提取点Shapefile的屏幕坐标(X、Y)?

在QGIS中提取点要素的屏幕坐标解决方案

QGIS原生工具箱没有直接提取屏幕坐标的工具,因为屏幕坐标依赖当前地图视图的缩放、平移状态,需要通过Python脚本实现:

方法一:将屏幕坐标写入图层属性表

  1. 在图层面板选中目标点Shapefile图层
  2. 打开Python控制台(菜单栏Plugins > Python Console)
  3. 复制以下代码并运行:
from qgis.core import QgsProject, QgsField, QVariant, QgsWkbTypes
from qgis.gui import QgsMapCanvas

# 获取当前地图画布
canvas = iface.mapCanvas()
# 获取激活的点图层
layer = iface.activeLayer()

if layer and layer.geometryType() == QgsWkbTypes.PointGeometry:
    # 检查是否已存在屏幕坐标字段,不存在则添加
    field_names = [field.name() for field in layer.fields()]
    if 'screen_x' not in field_names or 'screen_y' not in field_names:
        layer.dataProvider().addAttributes([
            QgsField('screen_x', QVariant.Int),
            QgsField('screen_y', QVariant.Int)
        ])
        layer.updateFields()
    
    # 编辑图层并写入坐标
    layer.startEditing()
    for feature in layer.getFeatures():
        geo_point = feature.geometry().asPoint()
        # 地理坐标转屏幕像素坐标(原点为画布左上角)
        screen_point = canvas.mapSettings().mapToPixel().transform(geo_point)
        feature.setAttribute('screen_x', screen_point.x())
        feature.setAttribute('screen_y', screen_point.y())
        layer.updateFeature(feature)
    layer.commitChanges()
    print("屏幕坐标已成功写入属性表")
else:
    print("请确保选中的是一个点类型图层")

方法二:仅查看屏幕坐标(不修改图层)

如果不需要保存坐标,只想临时查看,可使用以下脚本:

from qgis.core import QgsWkbTypes

canvas = iface.mapCanvas()
layer = iface.activeLayer()

if layer and layer.geometryType() == QgsWkbTypes.PointGeometry:
    print("要素ID | 屏幕X坐标 | 屏幕Y坐标")
    print("-------------------------------")
    for feature in layer.getFeatures():
        geo_point = feature.geometry().asPoint()
        screen_point = canvas.mapSettings().mapToPixel().transform(geo_point)
        print(f"{feature.id()} | {screen_point.x()} | {screen_point.y()}")
else:
    print("请选中一个点图层")

注意事项

  • 运行脚本前需将地图视图调整到你需要的状态(缩放、平移至目标区域),坐标值会随视图变化而更新
  • 屏幕坐标原点为QGIS画布的左上角,单位为像素

内容的提问来源于stack exchange,提问作者jthe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 15:32:19