关于通过GPS模块获取的坐标数据无法在Google地图上正确标记的问题说明

先看以下几个现象:
1. 通过GPS模块获取的坐标数据在Google地图标记,发现与真实位置相差甚远
2. 通过Google地球软件获取的坐标数据在Google地图标记,也与真实位置相差甚远;因为Google地球反馈的坐标信息也是通过卫星GPS获取的。
3. 通过Google地图(网页版,右键“这是什么”即可查看)获取的坐标数据在Google地图标记,可以精确的标记到Google地图上。

然后了解几个术语:
1. 火星坐标系:天朝有关部门规定,为了保证国家安全,所有的地图公司提供的地图必须对实际的GPS坐标进行一定的偏移,偏移后的GPS坐标系俗称火星坐标系,而这个偏移是不固定的,具体的算法是国家机密。
2. WGS84:国际通行的坐标体系标准,而GPS模块获取到的坐标正是WGS84坐标系
3. 北京54坐标系/西安80坐标系:天朝通用的经过偏移后的坐标系标准(而民航使用的是国际标准WGS84,否则国际航班没法正常飞行)

网上牛人给的解决方法:
1. 网页在线版:http://map.yanue.net/gps.html,其中第一个GPS原始数据转换结果还比较准确
2. C语言实现版:http://xcodev.com/131.html (需要加载一个78M的数据文件,普通手持设备可能比较吃力)
3. C#版:基于C语言而来,http://freshflower.iteye.com/blog/1606960
4. 通过百度API转换:http://blog.csdn.net/gengye304/article/details/7942219

后来又找到一个比较简单的换算方法:比如給出一個DMS座標例如W87°43'41 ",它是瑣細的轉換它成一定數量的小數程度運用以下方法:

  • 計算秒鐘, 43 ' 41的總數" = (43*60 + 41) = 2621秒。
  • 分數部分是3600除的秒鐘的總數。 2621/3600 = 0.728056
  • 增加分數程度到整體程度導致決賽成績: 87 + 0.728056 = 87.728056
  • 因為它是西部經度座標,結果应该以负数表示:-87.728056

轉換從小數程度嚮DMS

給出一個小數縱向座標例如-87.728055它瑣細的轉換它成DMS形式。 知道將是必要的它是否是一個緯度或縱向座標為了充分地轉換它。 方法是如下:

  • 減去座標的整數部分,離開分數part。 整數是程度的數量。 87.728055 = 87度。
  • 乘剩餘的分數部分以60。 這在整數部分將導致一定數量的分鐘。 0.728055 x 60 = 43.6833 = 43分鐘。
  • 乘分鐘的數量的分數部分以60,導致一定數量的秒鐘。 0.6833 x 60 = 40.998 = 41秒。 算作是此40秒,削小數,圓它到41是可能的,或者保留整個數字。

转载于:https://www.cnblogs.com/wzc0066/archive/2013/03/08/2950131.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值