简谈百度坐标反转至WGS84的三种思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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的三种思路相关推荐
- python如何下载os库_简谈下载安装Python第三方库的三种方法
如何下载安装Python第三方库(注:此文章以Windows的安装环境为前提) 一.利用Python中的pip进行第三方库的下载 首先我们要搞清楚Python中的pip是个什么东东?pip是一个安装和 ...
- python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式
本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...
- 火星坐标gcj02、百度坐标bd09II、WGS84坐标相互转换及墨卡托转经纬度百度墨卡托bd09mc
写在前面 bd09II: 百度地图 gcj02: 高德地图.腾讯地图 cgcs200: 天地图 wgs84: osm.谷歌.arcgisonline.... 1.经纬度转换 BD09 <=> ...
- JS: 火星坐标gcj02、百度坐标bd09II、WGS84坐标相互转换及墨卡托转经纬度百度墨卡托bd09mc
写在前面 bd09II: 百度地图 gcj02: 高德地图.腾讯地图 cgcs200: 天地图 wgs84: osm.谷歌.arcgisonline.... 1.经纬度转换 BD09 <=> ...
- java百度地图路线规划_浅谈百度地图WEB开发中的四种路线规划
百度地图在3.0的Javascript api中增加了四种路径规划,分别是:步行.骑行.自驾.公交. 关于路线规划的引用也相当简单,我们以步行为例://实例化地图 var map = new BMap ...
- 【Python】图像反转/反色的三种方法(pillow)
引言 图像反转(反色)是将图像的灰度值反转,若图像灰度级为 256,则新图的灰度值为 255 减去原图的灰度值.本文介绍了使用 Python 的 pillow 库进行图像反转(反色)的三种方法. 安装 ...
- echart横坐标太长导致坐标显示不完全(三种方法)
三种方法的完整方法如下图所示 三种方法分开阐述: 解决办法(三种方法) ①在xAxis中加入=> axisLabel :{interval:0} //axisLabel:{// inter ...
- java 经纬度坐标转换 WGS84、火星坐标 (GCJ-02)、百度坐标 (BD-09)
会有偏移,但是还能接受 WGS84 国际标准,从 GPS 设备中取出的数据的坐标系 国际地图提供商使用的坐标系 火星坐标 (GCJ-02) 中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系 ...
- 各坐标系转换,百度、高德、wgs84、cgcs2000坐标系互转
首先申明:转换方法都是网上找的,但是都不全,整理了一下 其中wgs84.cgcs2000互转结果有差异,也就是完全还原不了 先附上百度.高德.wgs84互转方法 js /*** Created by ...
- AI一分钟 | 谷歌租下北京 6000 平米写字楼,或将发展AI项目;工信部就个人信息保护约谈百度、支付宝、今日头条
一分钟AI 今日头条召开算法分享大会,称算法分发并非是把所有决策都交给机器 谷歌计划推出利用AI技术+人工审查的方法来共同消除视频中的不恰当内容 谷歌的智能音箱销量仅为25%,为扭转亚马逊独占市场大 ...
最新文章
- react antd form 表单清空
- http方式调用第三方接口
- XT711(大陆行货)刷机与优化指南
- 单元测试(Unit Test)学习
- PHP操作mongodb数据库操作类
- left join 索引失效无条件_技术分享 | MySQL 优化:JOIN 优化实践
- OAuth2.0 知多少
- javaone_JavaOne 2012:在JVM上诊断应用程序
- 操作系统--用JavaScript实现银行家算法
- WINDOWS2008网络负载平衡群集(NLB)完全攻略
- 有效管理云计算成本的多个措施
- Latex文档中 插入符号和编号
- 数据安全合规体系建设白皮书
- 用Delphi开发微信支付和支付宝支付生成签名并提交刷卡支付请求验证源码
- 为什么不吃米和面之后,体重掉得比较快?答案或许不是你想的那样
- 项目中有时候为什么加载不出来图片
- insmod 和 modprobe使用方法
- 股市跌跌不休,IPO能救市吗?
- 构筑立体世界,AR Engine助力B站会员购打造沉浸式营销
- NIO、BIO编程模型与零拷贝