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

1.背景

基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图是基于BD09坐标系的,GPS坐标(WGS84)或者其他常见的标准坐标是无法准确在地图上进行展示的,但是互联网在线情况下,百度提供了将WGS84经纬度转换成百度经纬度坐标的API,这里不再对其进行研究(离线情况下也有专门方法解决)。这里,我们探讨,如何将在百度上获取的百度坐标数据反转成WGS84坐标。

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

2.算法逼近方法

百度地图坐标系的背景为首先使用国测局制定的GCJ-02,对地理位置进行首次加密,然后再利用其自创的BD-09进行二次加密措施。所以基于算法的逼近,也是进行这样的反解步骤:首先将BD09坐标转换成GCJ02坐标,然后再将GCJ02坐标反算成WGS84坐标。

以下为基于算法反解的详细代码:

3.误差逼近方法

A点为百度坐标点,假设此时我们将其看作一个WGS84坐标点A1,利用百度提供的在线WGS84坐标转换成百度经纬度坐标系的API,可得到A1’百度坐标,此时A1’与A1之间的坐标差为L。假设百度地图在2L范围的坐标其反转误差大致相同,则我们将真实的百度坐标A做L标准差的线性加减得到A’,最后A’则为百度坐标A反转所得的WGS84坐标。

详细代码如下:

4.网格逼近算法

该方法我在之前的博客中详细介绍过:http://www.cnblogs.com/naaoveGIS/p/5342177.html。

其流程大致为:

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

b.建立各个格网的四角坐标中WGS84坐标与百度坐标之间的对应关系。

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

按照该点在格网的权重算出其WGS84坐标后转换完毕。

5.误差对比

此三种方法皆为逼近,误差是无法避免的,对这三种算法的误差做了初步的统计,如下:

首先对比了误差逼近方法和算法逼近方法,可见他们的平均误差均在10M上下,其中算法逼近方法比误差逼近方法稍微精度高一些。

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

6.总结

当精度要求不高,并且需要快速部署情况下,首推算法逼近方法。当需要高精度方法时,还是需要使用网格逼近方法。

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

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

简谈百度坐标反转至WGS84的三种思路相关推荐

  1. python如何下载os库_简谈下载安装Python第三方库的三种方法

    如何下载安装Python第三方库(注:此文章以Windows的安装环境为前提) 一.利用Python中的pip进行第三方库的下载 首先我们要搞清楚Python中的pip是个什么东东?pip是一个安装和 ...

  2. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  3. 火星坐标gcj02、百度坐标bd09II、WGS84坐标相互转换及墨卡托转经纬度百度墨卡托bd09mc

    写在前面 bd09II: 百度地图 gcj02: 高德地图.腾讯地图 cgcs200: 天地图 wgs84: osm.谷歌.arcgisonline.... 1.经纬度转换 BD09 <=> ...

  4. JS: 火星坐标gcj02、百度坐标bd09II、WGS84坐标相互转换及墨卡托转经纬度百度墨卡托bd09mc

    写在前面 bd09II: 百度地图 gcj02: 高德地图.腾讯地图 cgcs200: 天地图 wgs84: osm.谷歌.arcgisonline.... 1.经纬度转换 BD09 <=> ...

  5. java百度地图路线规划_浅谈百度地图WEB开发中的四种路线规划

    百度地图在3.0的Javascript api中增加了四种路径规划,分别是:步行.骑行.自驾.公交. 关于路线规划的引用也相当简单,我们以步行为例://实例化地图 var map = new BMap ...

  6. 【Python】图像反转/反色的三种方法(pillow)

    引言 图像反转(反色)是将图像的灰度值反转,若图像灰度级为 256,则新图的灰度值为 255 减去原图的灰度值.本文介绍了使用 Python 的 pillow 库进行图像反转(反色)的三种方法. 安装 ...

  7. echart横坐标太长导致坐标显示不完全(三种方法)

    三种方法的完整方法如下图所示 三种方法分开阐述: 解决办法(三种方法) ①在xAxis中加入=>    axisLabel :{interval:0} //axisLabel:{// inter ...

  8. java 经纬度坐标转换 WGS84、火星坐标 (GCJ-02)、百度坐标 (BD-09)

    会有偏移,但是还能接受 WGS84 国际标准,从 GPS 设备中取出的数据的坐标系 国际地图提供商使用的坐标系 火星坐标 (GCJ-02) 中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系 ...

  9. 各坐标系转换,百度、高德、wgs84、cgcs2000坐标系互转

    首先申明:转换方法都是网上找的,但是都不全,整理了一下 其中wgs84.cgcs2000互转结果有差异,也就是完全还原不了 先附上百度.高德.wgs84互转方法 js /*** Created by ...

  10. AI一分钟 | 谷歌租下北京 6000 平米写字楼,或将发展AI项目;工信部就个人信息保护约谈百度、支付宝、今日头条

    一分钟AI 今日头条召开算法分享大会,称算法分发并非是把所有决策都交给机器 谷歌计划推出利用AI技术+人工审查的方法来共同消除视频中的不恰当内容 谷歌的智能音箱销量仅为25%,为扭转亚马逊独占市场大 ...

最新文章

  1. react antd form 表单清空
  2. http方式调用第三方接口
  3. XT711(大陆行货)刷机与优化指南
  4. 单元测试(Unit Test)学习
  5. PHP操作mongodb数据库操作类
  6. left join 索引失效无条件_技术分享 | MySQL 优化:JOIN 优化实践
  7. OAuth2.0 知多少
  8. javaone_JavaOne 2012:在JVM上诊断应用程序
  9. 操作系统--用JavaScript实现银行家算法
  10. WINDOWS2008网络负载平衡群集(NLB)完全攻略
  11. 有效管理云计算成本的多个措施
  12. Latex文档中 插入符号和编号
  13. 数据安全合规体系建设白皮书
  14. 用Delphi开发微信支付和支付宝支付生成签名并提交刷卡支付请求验证源码
  15. 为什么不吃米和面之后,体重掉得比较快?答案或许不是你想的那样
  16. 项目中有时候为什么加载不出来图片
  17. insmod 和 modprobe使用方法
  18. 股市跌跌不休,IPO能救市吗?
  19. 构筑立体世界,AR Engine助力B站会员购打造沉浸式营销
  20. NIO、BIO编程模型与零拷贝

热门文章

  1. 课程设计哈夫曼编/译码系统
  2. 基于改进蜂群算法和灰色模型的管道腐蚀预测 - 附代码
  3. 【C++】获取二维数组的行和列
  4. FFmpeg入门知识(一):FFmpeg在Windows上的安装
  5. SpringAop+Mybatis 实现动态切换数据库操作
  6. 原生Hadoop集群搭建过程记录
  7. 多线程(一)--线程的创建,Thread类与Runnable接口
  8. Flutter获取packageName和versionCode
  9. java线程知识点拾遗(1)
  10. 我的面试标准:能干活、基础要好、有潜力!