百度坐标转换成WGS84坐标 |
您所在的位置:网站首页 › 百度地图坐标系是火星坐标系吗 › 百度坐标转换成WGS84坐标 |
需求:将百度坐标转换成WGS84坐标 实现: 首先介绍一下国内诸多繁杂的坐标系,众所周知,美国GPS使用的是WGS84坐标,但是在中国,国家出于安全的考虑,在地图发布和出版的时候,对84坐标进行了一次非线性加偏,得到的坐标我们称之为GCJ02坐标系,俗称火星坐标。另外,国内许多地图公司,可能是由于业务的需求,或者是商业竞争的某些原因,在火星坐标的基础上又进行了一次非线性加偏,得到了自己的坐标系统。百度就是这么一家公司。百度在GCJ02的基础上进行了BD-09二次非线性加偏,得到了自己的百度坐标系统。这样对于百度自己公司来说,或许是有利的,但是对于我们开发人员来说,简直是烦透了。 下面简单介绍一下国内的一些地图服务提供商使用的坐标系情况: 以上都是用于将84坐标转换为百度坐标所做的工作,下面,我们来谈一下,如何实现坐标的反向转换,即百度坐标转换为84坐标。 我在网上找了很多的算法,大部分的算法都局限于一次偏移,即百度坐标与火星坐标的互转,火星坐标与地球坐标的互转等等,对于百度坐标转84坐标这种二次加偏很少提到。 对此,我尝试将百度坐标先转换为火星坐标,然后再将该火星坐标转换为地球坐标,结果并不如人意,最低的误差为60米,多的甚至有600多米的误差,只好作罢。算法我也不贴出来了,有兴趣的同学可以去网上自行寻找。 这里,我采用的是一种取巧的办法,具体方法如下: 百度坐标和GPS坐标转换在很近的距离时偏差非常接近。 假设你有百度坐标:x1=116.397428,y1=39.90923 把这个坐标当成GPS坐标,通过接口获得他的百度坐标:x2=116.41004950566,y2=39.916979519873 通过计算就可以得到GPS的坐标: x = 2*x1-x2,y = 2*y1-y2 x=116.38480649434001 y=39.901480480127。 为了验证这一方法的准确性,我取了中国东南西北14个主要城市的坐标进行测试,得到的结果误差最大的为偏差13米,最小的为0.x米。综合误差为6米。具体测试结果稍后贴上。 下面我画一个简图,用以说明这个问题。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |