目录
一、前言
本文主要为QGIS点状矢量数据编辑方面的内容,不涉及编程方面。我们知道大多数GIS桌面应用都有读取“表格”文档为点状矢量文件的功能,在QGIS中为“读取文本分隔文件”,个人认为此功能适合大量点的批量导入。如果只有少量数据点(一两个),使用这个功能可以实现。但个人认为相对麻烦了,因此作为用户的我们想拥有更简便的方法。
二、应用场景
在已知X、Y、Z坐标点的情况下,且数据量较少时,可以使用本文的方法来实现。
三、实现思路
我们知道,一个地理空间矢量文件除了属性表数据以外,还有空间数据。在由QGIS组成的地理信息系统中,空间数据被抽象为“几何图形(Geometry)”的概念模型(暂且称之为概念模型吧)。
如果我们在QGIS中打开矢量文件属性表,再打开编辑开关,点击添加要素,此时属性表中会增加一行所有字段内容为空的记录,此时的这一行记录的空间数据一样为空。我们可以在单元格手动补全属性数据,通过字段计算器来更新这一行记录的“几何图形”数据。
如何更新几何图形数据呢?我们可以通过QGIS提供的WKT文本转几何对象的函数geom_from_wkt来实现。下面作者通过一个实验给各位看官演示一遍。
四、实验过程
1、创建一个临时矢量图层
单击【图层】【创建图层】【新建临时图层】
这里的图层名设置为“新建临时图层”,几何图形类型为点,坐标系为默认WGS1984大地坐标系。
添加了一个名为ID,数据类型为文本(长度255)的属性字段。
2、给矢量图层新增要素
邮件图层,确保矢量图层为编辑状态,然后打开属性表,向属性表中添加一行。
上述操作执行完毕后,属性表中有个一行记录,但此时该要素没有空间几何数据。
3、给新增要素的几何图形赋值
选中该要素,从属性表上打开字段计算器。
字段计算器中勾选仅更新所选的要素、更新现有字段、现有字段选择<geometry>(<几何图形>),在表达式中输入函数和数据,单击确定(OK)。
表达式:
geom_from_wkt('POINT(18.4907694 34.3547000)' )
其中POINT(18.4907694 34.3547000)为wkt字符串,wkt字符串的规范,可以参考1.2. II. SFS-简单要素标准 — OGC标准规范 文档 (osgeo.cn)
本文中,18.4907694是X坐标,34.3547000是Y坐标。
4、查看要素的几何图形
右键图层,缩放到图层范围即可查看几何图形。下图中使用识别要素功能查看了几何图形的坐标。至此,我们就完成了一个矢量点的添加。
五、实验总结
本文中的方法适用于在已有的数据集中添加少量数据要素(点、线、面)的应用场景。将大量的坐标数据转为矢量数据集,使用含有坐标的分隔文本文件更加合适。通过这种方式来添加矢量数据要素,也有助于我们理解地理空间矢量数据结构。