大数跨境
0
0

DeepSeek进行坐标转换,我真的大写的服!

DeepSeek进行坐标转换,我真的大写的服! GIS前沿
2025-02-10
3

我们的互联网上获取的数据点位的坐标信息,
其实都是加了偏移的坐标,
例如高德的火星坐标(GCJ02)、百度的BD09等,
所以,直接加载点位数据后,
会有明显的偏移。


例如,我加载了一个居民点位数据,
可以看到明细偏差,
甚至都偏出了行政区界线!



于是我向DeepSeek发出了请求:


数据是高德火星坐标,写个在ArcGIS Pro中运行的python代码,实现高德火星坐标转为CGCS2000的地理坐标


DeepSeek进行了长时间的系统深度思考:


首先明确需求:

首先,高德使用的是GCJ-02坐标系,而CGCS2000类似于WGS84,但可能存在细微差别。不过通常转换时,可能直接当作WGS84处理。所以需要找到GCJ-02到WGS84的转换算法,或者是否有现成的库可以用。不过ArcGIS Pro的Python环境可能没有这些库,所以可能需要自己实现转换算法。

然后考虑可行性:

接下来,我需要确定转换算法的正确性。GCJ-02的加密算法是公开的吗?我记得有一些开源项目实现了逆向转换,比如在GitHub上的某些项目。可能需要查找相关的Python代码,将其集成到脚本中。比如,是否有现成的函数可以将GCJ-02转换为WGS84?或者是否需要使用第三方库如coordTransform_py?

但考虑到用户希望代码在ArcGIS Pro中运行,可能不希望安装额外的库,所以最好自己实现转换算法。这样用户不需要额外安装依赖,工具会更易用。

注意对细节的把控:

需要注意,转换后的坐标是地理坐标系(WGS84或CGCS2000),可能需要设置输出坐标系为CGCS2000的地理坐标系,例如EPSG:4490或EPSG:4326(虽然4326是WGS84,但4490是CGCS2000)。不过实际上,CGCS2000和WGS84在大部分情况下坐标差异很小,可能用户需要确认具体需求。这里可能需要明确转换后的坐标系参数。

另外,坐标转换可能涉及点、线、面等不同几何类型,所以脚本需要处理各种几何类型,递归转换每个顶点的坐标。

......

给了我一段代码:

我把这段代码直接放到了ArcGIS Pro里面运行,
于是,真的转换成功了:
点位实现了移动,
整体看上去,
都在行政区划里面了。



具体到某个点位来看下,
就会发现,
还是很准的,
我真是大写的服!




- END -



历史干货

奥维、ArcGIS、QGIS、Global Mapper中添加各种图源并下载
奥维批量导入TXT控制点坐标套合卫星地图
软件下载 |点云革命,重塑现实!大疆智模融入点云处理能力,DEM即刻获取
你要的CORS账号,价格打下来了!只要9毛
空域申请 | 无人机航测UOM系统合法飞行申请流程
天地图上看实景三维

【声明】内容源于网络
0
0
GIS前沿
分享测绘地信资讯,交流行业软件技巧。
内容 4923
粉丝 0
GIS前沿 分享测绘地信资讯,交流行业软件技巧。
总阅读7.8k
粉丝0
内容4.9k