关于android定位的坐标系问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于android定位的坐标系问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1335字,纯文字阅读大概需要2分钟。
内容图文
对于刚接触android lbs应用的同学来说,混乱的坐标系转换是个令人头疼的事。我就在这里,把我所知道的一些关于android定位的坐标系相关的知识拿出来与大家分享,由于个人水平所限,如果有错误或纰漏,还望同学们不吝指正,互相交流,共同进步。
好了,闲话不多说。
按照正常的思路,我们通过GPS或者基站定位等方式获取到经纬度信息后,把它放到地图上,就能够完成定位。但实际上,我们很有可能会在实际操作中发现,我们的定位出现了较大的偏移。这是因为我国出于国家安全(或者¥@#%¥##)的考虑,会将所有的电子地图经行加偏处理,由真实的地理坐标系又称地球坐标系(WGS84)转换为火星坐标系(GCJ02)。这就是我们定位出现偏移的原因,也是坐标系问题产生的根源。
那么,我们要怎样处理坐标系问题呢。就以我们常用的百度与高德地图api为例来说明。百度地图的坐标系是在火星坐标系的基础上又自行加密的BD09坐标系,高德地图的坐标系是常见的火星坐标系GCJ02。那么很好理解了,既然百度地图是BD09坐标系的,那么通过百度地图API获得的经纬度也是BD09坐标系的,直接显示,没有问题;同理,通过高德地图API获得的经纬度也一定是GCJ02的,可以在高德地图上直接显示。但是我们如果没有调用第三方地图API,而是使用android.location获取的经纬度,或者是通过手持或车载的GPS终端获取的经纬度,那就是属于WGS84的真实的地理坐标,这时候,直接在百度或者高德地图上显示是会出现偏移的。
那么,遇到经纬度与地图的坐标系不相符的情况下,怎么办呢?最优的办法就是调用你所使用的地图的服务商提供的坐标系转换接口,有可能是付费接口。不推荐使用网上流传甚广的地球坐标系与火星坐标系转换算法,实测误差较大。如果,实在没有办法的话,在小范围内,给经纬度加一个固定的修正值,也勉强可用。注意,是小范围,因为加偏虽然不是线性的,但是一定范围的的偏移量不会相差太大,通过一个固定的修正值,还是能够在小范围内提高定位精度的。至于这个范围怎么确定,我也不知道...
当我们拿到自己的当前经纬度时,如何确定它是属于哪个坐标系的呢?当然是在地图上试一下喽。
火星坐标系(GCJ02)可以在谷歌地图或者高德地图中直接输入定位进行查看。谷歌地图http://ditu.google.cn/ 支持直接输入“纬度,经度”定位
高德地图http://www.amap.com/ 也支持直接输入“纬度,经度”定位
地球坐标系(WGS84)无法找到匹配的电子地图,但是我们万能的Google有谷歌地球,可以输入WGS84坐标系的经纬度进行定位,下载谷歌地球太麻烦,不怕,在这里http://www.earthol.com/ 我们可以直接查看
百度地图是不支持直接输入经纬度定位的,但是,我还有办法,http://www.cnblogs.com/productivity/p/3341309.html 提供了比较好用的百度坐标转换工具,能转了,还怕显示不了么。
原文:http://www.cnblogs.com/lihualuo/p/3527495.html
内容总结
以上是互联网集市为您收集整理的关于android定位的坐标系问题全部内容,希望文章能够帮你解决关于android定位的坐标系问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。