网友有时候的问题很奇葩,但是这也给了我一个思考的余地:
既然GCS能投影到PCS,那么为什么PCS不能恢复到GCS呢?我们知道,ArcGIS的矢量要素一旦投影完毕,就不能再恢复到其本身的GCS(虽然PCS有GCS的定义,但是投影法则不能去除),只能进行投影转换了。
有人说当然可以,反解不就行了吗?
我想说,你累吗?反解公式就能累死人,而且还不一定好找。
今天就给大家两种解决方案。
- 第一种,即经纬度坐标值备份法;
- 第二种,ArcGIS动态投影法。
如果对PCS、GCS等坐标系不太熟悉的同学建议阅读我的坐标系统博客。B站/CSDN/博客园/知乎 均为同ID:秋意正寒。
一、备份法
优点:不会丢失属性信息
缺点:必须在投影之前操作,如果只有投影后的文件,请参考方法二
即在进行投影之前,进行“添加XY坐标”这一操作,该工具位于【数据管理工具箱】-【要素工具集】-【添加XY坐标】。这样就能把经纬度提前写入属性表。
如下图,现在拥有一个尚未进行投影的江苏省边界数据:
转换折点后,使用【添加XY坐标】工具,属性表变为:
经纬度信息就写入了。
或者添加两个字段,进行计算几何操作,单位选择十进制度,同样也能添加经纬度到属性表(与【添加XY坐标】工具同样的效果)。
ps:我们都知道,一个shp/一个矢量要素由空间数据和非空间数据组成,空间数据即其几何信息和坐标信息,非空间数据即其字段与属性值。
在方法一中,我们就是把空间数据做了备份。
二、动态投影恢复法
优点:投影后也可以操作,用于临时恢复地理坐标系统表示的数据
缺点:属性信息需要重新导入
此法借助ArcGIS的动态投影功能,在计算几何时,将单位也改为十进制度即可。
这样,就能把已经投影的数据的经纬度,以十进制度的形式写入属性表,此时再导出dbf表,再将其导入ArcGIS并设置坐标系为原数据的GCS就能恢复了,但是属性表需要重新组织。
【举例】
将第一节提到的江苏省边界折点投影到UTM,则:
然后为其添加经度和纬度两个浮点字段:
此时计算几何或添加XY坐标当然是将投影后的坐标写入:
(投影没有设置假东/东偏移,所以在经度上出现了负值)
现在,可以用动态投影的内置功能反算出经纬度:
结果如下:
此时导出表:
相当nice!
随后,再将xls导入XY:
(记得导入XY时选上原来的地理坐标系哦)
就又回到了GCS状态下的江苏省边界点数据:
Ps.
有人说这只能是点啊——有点你自己不会生成线和面吗?
当然还有一种十分暴力的做法,那就是,如果知道某几个点的经纬度,不妨用空间校正...(逃