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

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

坐标获取

    • 手动获取
    • 使用python代码批量获取

手动获取

  • 节点工具拾取坐标
    1. 选中图层并打开编辑
    2. 启用顶点工具,在需要获取坐标的要素上用右键点击
    3. 在顶点编辑器查看要素坐标信息,如下图[QGIS]常用操作--获取要素的坐标_第1张图片
  • 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. 选中图层和要素(本例中选用线类型几何的要素),执行脚本,效果如下图:[QGIS]常用操作--获取要素的坐标_第2张图片
    以上就是本文章介绍的使用QGIS获取几何坐标的方法,希望能对您有所帮助,如对上述有疑问或者建议,欢迎私信~~

你可能感兴趣的:(qgis开发,QGIS教程,qgis,获取坐标,手动,python,教程)