• ArcGIS中将测绘数据投影坐标(平面坐标)转地理坐标(球面经纬度坐标)


    前言

      最近在刚好在做一个小功能,将测绘数据转为经纬度坐标。测绘数据是西安80的投影坐标,即平面坐标,我们要做的转为经纬度坐标,即地理坐标。对投影坐标和地理坐标不太懂的同学可以移步我们之前的一篇博文地理坐标系与投影坐标系

    1.测绘数据预览

      我们的80测绘数据是这样的:
    在这里插入图片描述

    1.1 确定带号

      很简单,看Y坐标的前两位就可以了,我们是36度带,很明显是3度带编号。为什么?因为我国的3度带编号是从25-46(网上很多人说是从24-45,其实是不对的),我们来看下高斯投影分带图就知道了:
    在这里插入图片描述
      上面是6度带,下面是3度带。由于我国的经度范围是73°33′至135°05′。根据这个范围我们很明显的就可以知道6度带是从13-23,那么对应的,3度带就是从25-46。因为45带的中央经线是132,46带的中央经线才是135。

    1.2 为什么是对Y轴分带,而不是对X轴分带?

      要解答这个问题,我们首先要明白测绘中使用的坐标系它的X轴Y轴和我们GIS里常用的指向是反的。明白这一点这对我们后面的转换很重要,见下图:
    在这里插入图片描述
      为什么要这样设计?因为要方便坐标方位角的计算,我们这里就不深入解释了,只需要知道是这样的就可以了。

    2 测绘数据转shp

      好了,讲完了理论,现在我们可以开始实操了。首先要说明的是,ArcGIS里不支持xlsx格式的excel,因为你需要先转为xls格式。然后导入到ArcGIS。

    2.1 添加数据

    在这里插入图片描述

    2.2 显示XY数据

    在这里插入图片描述
    在这里插入图片描述

      重点来了,这里的XY字段怎么选?基于我们之前的讲解,相信你已经明白了坐标轴是反的,虽然这里已经读出来了X坐标和Y坐标,但是错误的,所以要改过来,变为:
    在这里插入图片描述
    默认坐标系也不对,我们是投影坐标系,这里默认是地理坐标系,因此也要改过来,在投影坐标系中找到高斯-西安1980-36度带。
    在这里插入图片描述
    在这里插入图片描述
    点击确认,即可看到相应数据了。
    在这里插入图片描述
    接下导出数据
    在这里插入图片描述
    格式选为shpfile
    在这里插入图片描述
    在这里插入图片描述
    或者直接在这里改名称也可以,我们改为test.shp,点击确定,询问是否要加进来,点击是。
    在这里插入图片描述
    加进来以后右键看下属性
    在这里插入图片描述
    在这里插入图片描述

    2.3 添加经纬度字段

    右键图层-打开属性表
    在这里插入图片描述
    添加字段-经度,类型选双精度,点击确定。
    在这里插入图片描述
    在这里插入图片描述
    同样的操作添加字段-纬度,类型也为双精度
    在这里插入图片描述

    2.4 计算经纬度

    通过计算几何菜单计算经度值,注意要选择数据框的坐标系WGS84
    在这里插入图片描述
    在这里插入图片描述
    同样的操作计算纬度
    在这里插入图片描述
    在这里插入图片描述

    如果之前显示XY时选错了,这里就不能计算出正确的值,切记。

    如果数据框的坐标系不是WGS84怎么办呢?右键图层框,修改坐标系为WGS84即可。

    在这里插入图片描述
    在这里插入图片描述
    至此我们就完成了平面坐标向经纬度坐标的转换。接下来我们要讨论的是如何将整个文件转为WGS84坐标的文件,因为现在文件还是西安80坐标系的。

    3.shp数据重投影

    依次选择ArcToolBox-数据管理工具-投影和变换-投影
    在这里插入图片描述
    在这里插入图片描述
    注意输出坐标系选WGS84即可。因为西安80到WGS84要进行基准的变换,因此有个感叹号提示,不用管。
    在这里插入图片描述

    4.总结

      本文介绍了如何将测绘数据的平面坐标转为经纬度坐标,并详细介绍了其原理,包括测绘中的坐标系和GIS中的坐标系的差异,以及对我们坐标转换时的影响。现在我们明白了西安80如何转换为经纬度坐标,那么其他的如北京54,或者国家2000,你肯定也会了,因为都是类似的。本文就介绍到这里,希望对大家有所帮助,回见~

  • 相关阅读:
    漏洞复现----37、Apache Unomi 远程代码执行漏洞 (CVE-2020-13942)
    手工测试如何进阶自动化测试?熬夜7天整理出这一份3000字的超全学习指南...
    QT控件 — QScrollArea
    CICD中的Jenkins和Ansible解决方案
    5.go语言函数提纲
    [C#]C#最简单方法获取GPU显存真实大小
    m半分布式JAC联合接纳控制与用户位置信息的垂直切换matlab仿真
    面试必备:一线大厂Redis缓存设计规范与性能优化
    电压跟随器
    IPKISS Tutorials ------查看使用_generate_instances 方法创建图形的端点
  • 原文地址:https://blog.csdn.net/xiangshangdemayi/article/details/140058599