[QGIS]常用操作--获取要素的坐标

文章中使用的QGIS版本为:3.10.7-A Coruña

手动获取

  • 节点工具拾取坐标
    1. 选中图层并打开编辑
    2. 启用顶点工具,在需要获取坐标的要素上用右键点击
    3. 在顶点编辑器查看要素坐标信息,如下图vertex tool
  • wkt格式复制粘贴获取
    1. 选中需要查看坐标的要素(可以不打开编辑状态)
    2. 按下CTRL+C,复制要素
    3. 打开文本编辑器,CTRL+V将要素信息粘贴到文件中,此时除了要素的坐标这样的几何信息,还有要素的一些属性值也会粘贴到文件,如下录屏
      复制粘贴大法

使用python代码批量获取

  • QGIS支持使用python代码获取要素信息,进行python插件开发,此处简单介绍下通过代码获取要素几何信息
  1. 首先是制作python脚本文件,代码如下:
    2021年7月5日更新,新增对点/线/面几何处理,本文章是以线几何为样例进行处理的
import os
import sys
from qgis.gui import *
from qgis.core import *
import qgis.utils
from qgis.core import QgsProject

mapCanvas = iface.mapCanvas()
curlayer = mapCanvas.currentLayer()

if curlayer is None:
    print("%s:%s" % ("Error","图层不可用"))
else:
    fetList = curlayer.selectedFeatures()
    print("%s:图层[%s]要素坐标解析开始" % ("Info", curlayer.name()))
    for feature in fetList:
        lineFid = feature.id()
        print("lineFid:%s" % (str(lineFid)))
        geom = feature.geometry()
        # line
        ori_pts = []
        if geom.isMultipart():
            print("MultiPart")
            for part in geom.parts():
                pts = part.points()
                for point in pts:
                    ori_pts.append(point)
        else:
            print("Simple")
            ori_pts = geom.get().points()
        # area
        # for areaPt in geom.vertices():
        #	ori_pts.append(areaPt)
        # point
        # point = geom.get()
        # ori_pts.append(point)
        endPoint = [ori_pts[0],ori_pts[-1]]
        idx = 0
        idxDict = {0:"起点", 1:"终点"}
        for lanePt in endPoint:
            print("端点[%s](%.12f,%.12f,%.12f)" % (idxDict[idx], lanePt.x(), lanePt.y(), lanePt.z()))
            idx = idx + 1
    print("%s:图层[%s]要素端点解析坐标完成" % ("Info", curlayer.name()))
  1. 打开python控制台,点击"显示编辑器"打开python代码编辑器,将上步代码粘贴到编辑器
  2. 选中图层和要素(本例中选用线类型几何的要素),执行脚本,效果如下图:python代码
    以上就是本文章介绍的使用QGIS获取几何坐标的方法,希望能对您有所帮助,如对上述有疑问或者建议,欢迎私信~~
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

young_always

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值