简谈百度坐标反转至WGS84的三种思路

作品版权由笔者李晓晖和乐乎共有,若转发请于显然处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

依照百度地图举办多少突显是近日项目中常见场景,但是因为百度地图是依照BD09坐标系的,GPS坐标(WGS84)或者其他周边的正式坐标是力不从心精确在地图上开展展现的,可是互联网在线状态下,百度提供了将WGS84经纬度转换成百度经纬度坐标的API,那里不再对其举办商讨(离线情况下也有特意方法解决)。那里,大家探究,怎么样将在百度上收获的百度坐标数据反转成WGS84坐标。

近日有三种通用方法来化解此问题,分别是算法逼近、误差逼近和格网逼近方法。

2.算法逼近方法

百度地图坐标系的背景为第一采用国测局制定的GCJ-02,对地理地方展伊始次加密,然后再使用其自创的BD-09开展二次加密方法。所以据悉算法的逼近,也是举行如此的反解步骤:首先将BD09坐标转换成GCJ02坐标,然后再将GCJ02坐标反算成WGS84坐标。

以下为根据算法反解的详尽代码:

 必发bifa88手机客服端 1

必发bifa88手机客服端 2

3.误差逼近方法

A点为百度坐标点,假若此时大家将其视作一个WGS84坐标点A1,利用百度提供的在线WGS84坐标转换成百度经纬度坐标系的API,可取得A1’百度坐标,此时A1’与A1里头的坐标差为L。如若百度地图在2L限制的坐标其反转误差大概相同,则大家将真正的百度坐标A做L标准差的线性加减得到A’,最终A’则为百度坐标A反转所得的WGS84坐标。

必发bifa88手机客服端,                                                                       
   必发bifa88手机客服端 3

详细代码如下:

 必发bifa88手机客服端 4

4.网格逼近算法

该办法本身在前头的博客中详尽介绍过:http://www.cnblogs.com/naaoveGIS/p/5342177.html

其流程大约为:

a.将指定范围以100M(或更小)划分成几何格网。

b.建立梯次格网的四角坐标中WGS84坐标与百度坐标之间的照应关系。

c.判断待转换的百度点落在哪些网格中,获取该格网的四角坐标对应的WGS84坐标。

根据该点在格网的权重算出其WGS84坐标后转移完成。

                                                  
必发bifa88手机客服端 5

5.误差相比

此三种艺术皆为逼近,误差是无能为力防止的,对那三种算法的误差做了启幕的计算,如下:

 必发bifa88手机客服端 6

先是比较了误差逼近方法和算法逼近方法,可知他们的平均误差均在10M内外,其中算法逼近方法比误差逼近方法有些精度高一些。

而网格方法是一种误差很平静的方法,以100M的网格划分为例,其误差是毫米级的,具体如下:

                                                     
必发bifa88手机客服端 7

6.总结

当精度须求不高,并且要求快速布置意况下,首推算法逼近方法。当须要高精度方法时,依旧须要运用网格逼近方法。

 

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

                                                                          
假若你认为本文确实扶助了你,可以微信扫一扫,举行小额的打赏和鞭策,谢谢
^_^

                                                                                  
                必发bifa88手机客服端 8

相关文章