对互联网中常见地图的坐标系探讨

简介: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.背景 目前项目中使用百度地图、高德地图、谷歌中国地图、天地图的需求越来越多,这里我跟大家一起对各地图使用的坐标系做一个简单的探讨。

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

目前项目中使用百度地图、高德地图、谷歌中国地图、天地图的需求越来越多,这里我跟大家一起对各地图使用的坐标系做一个简单的探讨。

2.百度地图——BD-09

百度地图是在GCJ-02坐标系上,又自己对坐标加密了一次,它官方文档里说叫BD-09,目前从GPS坐标转到百度坐标有接口提供,反过来不提供。

当然,目前反转方法在我们实际项目中已经解决,精确度可以达到0.5M以内。

2.1百度瓦片获取思路

百度地图的投影还是标准的Web横轴墨卡托投影,所以其切图的坐标原点、范围都是可以计算出来的。瓦片大小、基本URL也都可以通过监听百度的URL获取。需要注意的是,百度地图的瓦片行列号和负载地址在不同级别上都会有所不同,其变化规则如下:

瓦片的行列号是每增加一个级别便会进行一个规则的偏移,其偏移算法如下:

                                                 

2.2本地坐标系图层与百度底图叠加的探讨

2.2.1 强行对瓦片数据进行纠偏

在最新的arcBruTile0.7中已经支持对百度地图的添加。可以加载了百度瓦片后,通过寻找百度地图上与本地地图上的控制点对进行强行纠偏。

缺点是栅格图像纠偏形变是很难避免的,而且工作量也大,并且很难自动化。

2.2.2 将矢量数据转换为百度坐标系——以天津90坐标系为例

a.获取WGS84到天津90坐标系上的7参数。

b.通过建立控制点库(已研发),利用工具(已研发)将天津90坐标系数据自动转换为WGS84坐标系数据。

c.再建立WGS84与百度坐标系之间的控制点库(已研发),将WGS84数据再转换为百度坐标系数据。

d.叠加后测试。

2.2.3结果展示

                                            

 

3.高德地图和谷歌中国地图——GCJ-02

3.1地图坐标系的探讨

高德地图和谷歌地图均是使用的GCJ-02坐标系,以下为测试例子:

 

具体来说GCJ-02坐标系与WGS84坐标系偏移一般在100M上下,这种处理技术,是通过一种方法将一张地图修改为另外一张地图,修改完成之后,地图上的点,会发生大到几百米,小到几十米的偏移。如果你用几何上坐标转换的方法想复原原地图,难度很大,因为处理技术的处理映射函数是非线性的。网上有很多两个坐标之间的转换方法,但是精确度一般般,在10M左右。

在国内,GCJ-02带来的偏移最大有700米左右,偏移的绝对值可以参考下图(最红处接近700 m,最蓝处大约 20 米):

 

3.2本地坐标系数据叠加到GCJ-02坐标系上

3.2.1转换流程

由于本地数据并不会是大范围的,所以其局部偏移上可以通过线性方法暂时逼近。

a.本地坐标数据转换为WGS84坐标数据。

b.对本地WGS84坐标数据进行Web横轴墨卡托投影。

c.将投影后的数据叠加到高德或者谷歌中国地图上。

d.进行线性偏移。

3.2.2结果展示

 

4.天地图——CGCS2000

4.1坐标系研究

天地图上不同省份使用的坐标系可能不同,目前来看我经手过的浙江、四川均为标准的国标2000坐标系。但是有些地方为当地坐标系,还需测绘局提供保密插件进行处理。

国标2000坐标系与WGS84坐标系偏差不大,因为CGCS2000坐标系与WGS84坐标系的原点、尺度、定向及定向演变的定义都是相同的,参考椭球的参数略有不同而已。相同的坐标点,在CGCS2000与WGS84下,经度是相同的,只在纬度上存有0.11mm上下的区别,可以忽略掉。

4.2 本地坐标系矢量数据叠加到天地图上

a.将本地数据转换为WGS84或者国标2000坐标系数据。

b.叠加到天地图上。

4.3结果展示

 

                                                                  -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                      如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                      

 

目录
相关文章
|
计算机视觉 iOS开发 MacOS
Alfred Clipboard History 回车自动粘贴失效
Alfred Clipboard History 回车自动粘贴失效
1659 0
Alfred Clipboard History 回车自动粘贴失效
《使用「Markdown」编辑器的那些天 |CSDN编辑器测评》
《使用「Markdown」编辑器的那些天 |CSDN编辑器测评》
154 0
|
存储 NoSQL Serverless
位运算的魅力:使用Redis Bitmap高效处理百万级布尔值
位运算的魅力:使用Redis Bitmap高效处理百万级布尔值
516 0
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
627 0
|
Apache 开发者
最受欢迎的三方库之SpinKit
SpinKit 是一款适用于 OpenHarmony/HarmonyOS 的加载动画库,提供多种动画类型与自定义配置,帮助开发者轻松实现美观的加载效果。
180 0
|
数据采集 JavaScript 开发者
无法打开浏览器开发者工具的可能解决方法
无法打开浏览器开发者工具的可能解决方法
352 4
|
10月前
|
机器学习/深度学习 自然语言处理 搜索推荐
智能语音识别技术的现状与未来发展趋势####
【10月更文挑战第21天】 本文深入探讨了智能语音识别技术的发展脉络、当前主要技术特点及面临的挑战,并展望了其未来的发展趋势。通过分析传统声学模型与深度学习技术的融合、端到端建模的兴起以及多模态交互的探索,揭示了智能语音识别技术向更高精度、更强鲁棒性迈进的必然趋势。同时,文章也指出了数据隐私、噪声干扰等挑战,并提出了相应的解决方案和研究方向,为智能语音识别技术的未来发展提供了参考。 ####
848 1
|
存储 关系型数据库 数据库
数据的反规范化架构
【6月更文挑战第13天】 本文介绍数据库设计包括规范化和反规范化。优化设计和应用规范化规则确保高效且准确的数据存储。
394 2
数据的反规范化架构
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
707 0
|
JavaScript 安全 前端开发
【Node.js】从入门到精通(一)—— fs 模块全解析
【Node.js】从入门到精通(一)—— fs 模块全解析
288 0