非专业解释 Google、高德卫星地图上同一坐标为何会偏差这么大,附 130MB 采集省市区边界坐标数据

2020-08-20 13:18:45 +08:00
 xiangyuecn

GPS 坐标转 GCJ02 坐标(似乎被调侃成火星坐标,发明人赚了不少钱吧),对应坐标在 Google 、高德卫星地图上显示时,发现一个规律,海拔越高卫星地图上显示的偏差越大。

比如:青藏高原上,GPS 坐标在你家,转成 GCJ02 后标注在高德卫星地图上跑到邻居家里了,偏差大概在 10 米内;海拔不高的地方偏差比较小大约 1 米内。

然后我想了一下,画了一幅小鸡啄米图:

给两组测试数据吧(百度卫星地图的就不放了,和高德对比一样有偏差,只不过比较小):

[拉萨某地卫星地图] 高德:29.656359, 91.159730 || Google:29.659070, 91.158185 || 两个卫星地图上偏差 7.77 米

[青岛某地卫星地图] 高德:36.104124, 120.449043 || Google:36.103870, 120.443980 || 两个卫星地图上偏差 1.54 米


昨天采集更新了一下全国省市区数据和边界范围坐标数据,边界范围数据用的高德地图的数据,今天一琢磨又想到了这个偏差的问题,就画了一幅图来瞎猜。

数据仓库地址: https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov

数据支持转成 sql 、导入数据库,转成 shp 、geojson,省市区乡镇有 4 级数据有在线测试页面(支持多级联动)。

3316 次点击
所在节点    程序员
15 条回复
uuiitwp
2020-08-20 13:41:50 +08:00
个人认为理论上的 dom 根据 dem 消除了这种误差。在沿海省份,同名点叠加在不同地图显示,卫片几乎看不出区别。
shyrock
2020-08-20 15:09:27 +08:00
你发现的这个规律能不能用数据验证一下,看看误差随海拔变化的趋势。
Rivers7
2020-08-20 17:08:24 +08:00
百度地图卫星影像也是国外的商业卫星 数据源和更新频率比谷歌地图差远了 初始坐标也是 WGS84 为了保密要求 主动加了误差
xiangyuecn
2020-08-20 18:10:32 +08:00
@Rivers7 #3 并非加密的问题,加密后偏移大部分是百米起步,只要计算次数足够多是可以脱密纠偏的。测试数据是纠偏后的坐标,应该可以认定是地图之间的自己固有误差。


@shyrock #2 可以想象一下,一颗南边微信 拍出来的图片 和 靠北的卫星拍出来的照片,一栋高楼就会出现南边拍摄的和北边拍摄的倾斜角度不一样。同理放到青藏高原上,就会出现上图这种现象。大量数据验证没有,少量的点人工对比还是可以的,海拔高的地方,高德和百度之间、高德和 Google 之间都会偏差很大。
azh7138m
2020-08-20 20:02:37 +08:00
确实非专业,相关分析工作主要是 10 年前的这篇文章
https://wuyongzheng.wordpress.com/2010/01/22/china-map-deviation-as-a-regression-problem/
你在网上看到的迭代做转换坐标是来自于这里。

扩展阅读: https://wuyongzheng.github.io/china-map-deviation/paper.html


以上内容均在维基百科中有列出。
aleung
2020-08-20 20:19:38 +08:00
看起来我当年的研究更早,不过没敢把细节全写出来,也没有解决频率较低的扰动,但抽样测试过全国大部分区域都可以做到误差几米以内了。 不过后来没有继续深究下去。https://aleung.github.io/blog/2009/12/27/Google-China-Map-offset-2/
sampeng
2020-08-21 08:25:00 +08:00
上次看到有个说法是国外公司是压根没有海拔数据的…全靠算法补…海拔数据在中国是机密数据…
sampeng
2020-08-21 08:30:02 +08:00
参考 google 卫星地图,可以看到很多地方的畸变很严重,比如说每年都会被拉出来的长江三峡大坝已经跟蚯蚓一样弯曲不规则了…没有海拔数据就没办法正确映射坐标点。我觉得这个说法是比较靠谱的。在海拔变化不大的平原地区城市因该就相对误差较小…没实际使用过…海拔数据在测绘局手上呢。摆明了不可能给详细数据给国外公司
tankren
2020-08-21 08:41:57 +08:00
国防需要 当然不能给
zlowly
2020-08-21 10:41:26 +08:00
个人觉得不大可能,遥感卫星可以带雷达高度计,而国际条约没有对卫星遥感对象等具体方面的限制,商业公司只要遵循自己国家的政策规范,应该是可以获取到海拔数据的,成不了什么机密。
toou123
2020-08-21 10:57:36 +08:00
这种活不应该是美国 cia 之类去做的么,楼主这样不怕被喝茶么?
xiangyuecn
2020-08-21 11:13:53 +08:00
@toou123 #11 不要吓我 我怕😂
PhxNirvana
2020-08-21 21:26:55 +08:00
FYI

测绘法

第二条
在中华人民共和国领域和中华人民共和国管辖的其他海域从事测绘活动,应当遵守本法。 本法所称测绘,是指对自然地理要素或者地表人工设施的形状、大小、空间位置及其属性等进行测定、采集、表述,以及对获取的数据、信息、成果进行处理和提供的活动。
第五十五条
违反本法规定,未取得测绘资质证书,擅自从事测绘活动的,责令停止违法行为,没收违法所得和测绘成果,并处测绘约定报酬一倍以上二倍以下的罚款;情节严重的,没收测绘工具。 以欺骗手段取得测绘资质证书从事测绘活动的,吊销测绘资质证书,没收违法所得和测绘成果,并处测绘约定报酬一倍以上二倍以下的罚款;情节严重的,没收测绘工具。
Rivers7
2020-08-23 13:07:58 +08:00
@xiangyuecn 我本科就是学遥感的,我们看到的卫星影像都已经进行几何校正,去除了部分因为地形起伏造成的投影差,国外的卫星数据平面精度基本上达到 5 米以内,国内卫星影像精度差一些 ,城市地区卫星影像由于高楼起伏也会有很大的畸变,结合高精度数字表面模型生产数字正射影像可以改善很多,平面和高程精度可以达到 1 米以内,不过这些数据主要是测绘部门在做,民用应用很少,百度高德地图数据源其实差不多的,偏差个人觉得还是在坐标系转换这里出现问题
xiangyuecn
2020-08-23 13:17:45 +08:00
@Rivers7 #14 感谢分享

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699921

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX