在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统。大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识。但在我国,出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标,我们在业内将前者称之为地球坐标,后者称之为火星坐标,具体的说明可以参看百度百科中关于火星坐标系统的解释。
1.国内各地图API坐标系统比较
参考 http://rovertang.com/labs/map-compare/
结论是:

API 坐标系
百度地图API 百度坐标
腾讯搜搜地图API 火星坐标
搜狐搜狗地图API 搜狗坐标*
阿里云地图API 火星坐标
图吧MapBar地图API 图吧坐标
高德MapABC地图API 火星坐标
灵图51ditu地图API 火星坐标

2.下面是百度官方对百度坐标为何有偏移的解释
  国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。
3.火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法
GCJ-02(火星坐标) 和 BD-09 (百度坐标)
算法代码如下,其中 bd_encrypt 将 GCJ-02 坐标转换成 BD-09 坐标, bd_decrypt 反之。
void bd_encrypt(double gg_lat, double gg_lon, double &bd_lat, double &bd_lon)
{
double x = gg_lon, y = gg_lat;
double z = sqrt(x x + y y) + 0.00002 sin(y x_pi);
double theta = atan2(y, x) + 0.000003 cos(x x_pi);
bd_lon = z cos(theta) + 0.0065;
bd_lat = z
sin(theta) + 0.006;
}

void bd_decrypt(double bd_lat, double bd_lon, double &gg_lat, double &gg_lon)
{
double x = bd_lon - 0.0065, y = bd_lat - 0.006;
double z = sqrt(x x + y y) - 0.00002 sin(y x_pi);
double theta = atan2(y, x) - 0.000003 cos(x x_pi);
gg_lon = z cos(theta);
gg_lat = z
sin(theta);
}
4.地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法
WGS-84 到 GCJ-02 的转换(即 GPS 加偏)算法是一个普通青年轻易无法接触到的“公开”的秘密。这个算法的代码在互联网上是公开的,详情请使用 Google 搜索 “wgtochina_lb” 。
整理后的算法代码请参考 https://on4wp7.codeplex.com/SourceControl/changeset/view/21483#353936 。知道了这个算法之后,就可以离线进行 Google 地图偏移校正,不必像之前那么麻烦。
至于 GCJ-02 到 WGS-84 的转换(即 GPS 纠偏),可以使用二分法。

地图坐标转换-火星坐标相关推荐

  1. 地图坐标转换 -- 火星坐标与GPS坐标

    第一次处理地理位置的数据的人,没什么经验,往往掉入很多坑浪费不少时间.我也是刚刚从坑里爬出来.这篇博文主要是把入门GPS轨迹分析的经验总结一下,以方便大家少走些弯路. (1)可视化 GPS 路径 刚拿 ...

  2. 地图坐标转换(84坐标、百度坐标、国测局坐标)

    由于目前世界上只有美国才有全球定位系统(GPS),当我们实际做项目时,得到的坐标数据往往都是为GPS全球定位系统使用而建立的坐标系统,即我们所说的84坐标.而基于我国国情,这些真实坐标都是已经进行人为 ...

  3. google map 的地图偏移 火星坐标

    最近准备在移动设备上使用google map作为底图,加上GPS的实时显示,发现实际的GPS坐标与google底图存在一定的偏移,原因如下: 中国特色 火星坐标 转载     http://www.c ...

  4. 百度坐标转换火星坐标UDF

    今天介绍一个坐标转换的udf,包括java代码的编写的udf函数的创建1. 编写Java代码 打开IDEA,创建项目,导入pom文件,见下面,在Java目录下创建udf的包,编写GPSConverte ...

  5. 百度地图转高德地图(火星坐标)高德地图(火星坐标)转百度地图

    申请百度api就不多说了记得配置好环境 //百度转高德function bd_decrypt($bd_lon,$bd_lat){$x_pi = 3.14159265358979324 * 3000.0 ...

  6. 地图坐标转换(火星坐标系、百度坐标系、谷歌、腾讯、高德等坐标)

    好文章记录 概念解释 首先搞清楚什么是火星坐标?到底有哪些坐标体系?由来是怎样的? 1.1 名词解释 坐标系统:用于定位的系统,就跟二维笛卡尔坐标系统一样,一个点使用(x,y),就能确定该点在笛卡尔坐 ...

  7. 百度 Google 全国 地图 火星坐标 产生原因(记录)

    为什么80%的码农都做不了架构师?>>>    1.偏移的起因:天朝测绘局以国家安全为理由,用法律的形式对所有在天朝发行的地图类产品加了强制性规范,要求所有地图类产品都必须使用国家测 ...

  8. Android中高德地图与百度地图坐标转换

    项目中实验数据点取自高德地图,它是火星坐标系统(下面会有解释),而现在希望用百度地图的SDK进行开发,两套不同的规范自然需要进行转换.如何解决这个问题呢?参考了网上很多人的博客和资料. 最终解决此问题 ...

  9. 火星坐标-地球坐标的由来 以及转换方式:

    在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统.大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际 ...

  10. [转]地球坐标 火星坐标 百度坐标 相互转换

    在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统.大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际 ...

最新文章

  1. windows下安装whl文件
  2. 《LeetCode力扣练习》第448题 找到所有数组中消失的数字 Java
  3. Python每日一练0018
  4. c语言switch计算利润,求助。。关于用switch编写简易计算器
  5. 《The Corporate Startup》作者访谈
  6. matlab imaqhwinfo
  7. uva 10118 ——Free Candies
  8. C#通过SSH连接MySql
  9. 崛企问卷调查小程序模块V1.3.2
  10. [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
  11. 软Raid5,LVM,3T大硬盘纠缠操作的问题
  12. jquey 阻止表单提交
  13. 平面与网页设计中关于颜色搭配的问题
  14. SAR图像:拟合杂波时常用的分布
  15. bi 工具 市场排行榜_国产移动BI工具排名
  16. CSDN博客之星评选
  17. kubectl 命令详解(三十五):rollout undo
  18. A4纸张两面打印、每面打印2页的打印机设置
  19. 我想把生活折腾成自己想要的样子
  20. APIS(BOM)——Window对象、本地存储

热门文章

  1. cf I - Irrational Division
  2. 20 周年会上的这条视频,看哭了 10 万阿里人
  3. LTE入门之UE-Category
  4. 计算机集成声卡输出通道,1台电脑多人用!多屏输出另类功能详解
  5. Log4j 漏洞修复检测 附检测工具
  6. 量化交易入门笔记-策略常用对象
  7. 苹果市值破万亿,iPhone 会涨价吗?
  8. html中如何使用正方形符号,正方形符号如何用MathType编辑
  9. 美国纽约大学计算机专业排名,纽约大学计算机工程专业排名第40(2020年USNEWS美国排名)...
  10. qt c语言混合编程 pdf,QT中的C++技术 pdf