需求:
将带有经度、纬度(WGS84坐标系)坐标的文本(*.txt)转换成指定投影坐标系的shp文件并计算x,y坐标。
环境和工具:
WIN10、QGIS2.16、带有经纬度坐标的文本。格式如下图:
1、创建矢量图层
打开QGIS,选择Layer-->Add Layer-->Add Delimited Text Layer 菜单,如下图所示:
2、导入文本坐标
弹出创建图层对话框,选择带有坐标的文本文件,选择自定自定义分割符(Custom delimiters),选择空格(Space),在X field和 Yfield下拉框中选择对应的x、y坐标,然后点击确定,如下图所示:
3、选择坐标系
点击确定之后需要选择坐标系,这里选择WGS 84地理坐标系 在Filter搜索框中输入:WGS 84 选择EPSG:4326的坐标系,如下图所示:
4、另存矢量图层到本地计算机
这样数据就被导入进来了,然后另存数据,选中导入的图层,右键,选择Save As,如下图所示:
5、设置导出图层参数
打开另存为对话框,这里导出的格式为ShapeFile。填写好文件路径和坐标系之后,点击确定就可以导出了,导出后文件会自动加载到QGIS中,如下图所示:
6、打开属性表
右键打开shp图层的属性表,如下图所示:
7、打开字段计算器
打开属性表后开始计算X、Y坐标,点击属性表上面的:字段计算器(Calculator),如下图所示:
8、计算X投影坐标
打开字段计算器后开始计算要素的投影坐标,选择Create a new field,输入字段名称,字段类型和精度之后、在row_number目录树中选择Geometry节点下面的$x用来计算要素的x坐标。双击,将计算公式添加到左侧的计算框中,计算框下方会出现输出预览(Output preview),来查看输出结果是否正确,如果出现红色字体提示则出现了计算错误。然后点击确定即可得到计算结果。如下图所示:
计算结果如下图所示:
9、计算Y投影坐标
计算Y坐标同理,如下图所示:
PS:
这里说一下同样是x,y,为什么坐标不一样。
因为他们使用的坐标系不一样,文本里面的经纬度使用的是WGS 1984 地理坐标系,也是球面坐标系。而转换后的坐标系是墨卡托(Web Mercator)投影坐标系,是平面坐标系。他是将球面坐标经过一定的投影规则转化成平面坐标的。
想更加深入的了解坐标系可以自行百度,或者浏览以下博客: