百度导航坐标转换问题
来源:互联网 发布:淘宝客设置流程 卖家 编辑:程序博客网 时间:2024/06/01 19:01
备忘一下使用百度地图与百度导航中遇到的一些问题,已经解决方法,方便日后查询。
需知:
(1)、Android定位SDK中使用的坐标体系:
gcj02:表示定位成功后返回国测局经纬度坐标系坐标;
bd09:表示定位成功后返回百度墨卡托坐标系坐标;
bd09ll:表示定位成功后返回百度经纬度坐标系坐标。
其中bd09ll的坐标可以无偏差的显示在百度地图中(应该是百度地图默认也是使用这个坐标系),所以在定位中选取bd09ll,定位成功后就可以返回对应的坐标了。
(2)、Android导航SDK中使用的坐标体系:
BD09_MC:表示算路节点中使用百度墨卡托坐标;
GCJ02:表示算路节点中使用国测局坐标;
WGS84:表示算路节点中使用GPS坐标。
在2015年的时候,需要用到百度的导航功能,发现了百度定位与百度导航使用的是不同的坐标体系,所以导航的精准度惨不忍睹。但是当时又没有找到方法进行坐标转换,就搁置了这个功能。今天终于在BBS看到一个帖子百度开放平台-百度导航坐标转换问题。参考这个帖子,终于把问题解决了。
思路:
(1)在开始导航之前,将坐标转换成GCJ02坐标再进行导航。
(2)Android定位SDK类参考中的LocationClient类中有一个方法:
getBDLocationInCoorType(BDLocation src, java.lang.String transferType) 参数: BDLocation -src 原始BDLocation; String - transferType 转换类型,取值范围为:[ BDLocation.BDLOCATION_BD09_TO_GCJ02, BDLocation.BDLOCATION_BD09LL_TO_GCJ02, BDLocation.BDLOCATION_GCJ02_TO_BD09, BDLocation.BDLOCATION_GCJ02_TO_BD09LL ]
好了,我们现在只需要把bd09ll坐标转成GCJ02即可。参考代码如下:
LocationClient.getBDLocationInCoorType(bdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02);/* bdLocation为定位时获取到的bd09ll坐标*/
然后在初始化的时候就可以bdLocation.getLongitude()这样子获取GCJ02的坐标了。然后就可以愉快的导航了。
0 0
- 百度导航坐标转换问题
- 百度地图api坐标转换,两点导航
- 百度地图导航与百度地图进行的坐标转换
- 百度导航 iOS SDK的坐标转换代码示例
- 高德地图百度地图导航坐标转换
- 高德地图百度地图导航坐标转换
- 高德地图百度地图导航坐标转换
- iOS关于百度地图坐标转换问题
- 百度地图 坐标转换 顺序问题
- 百度坐标转换GPS坐标
- 腾讯坐标转换百度坐标
- 百度坐标转换
- 百度地图坐标转换
- 百度地图坐标转换
- 百度坐标转换
- 百度地图坐标转换
- 百度坐标转换
- 百度地图坐标转换
- 确定网页适配及流量压缩的业务流量的方法、系统和设备
- Andorid通用流行框架
- (转)iPhone实战:动态改变UITableView中的Cell高度
- 第二章 ApplicationContext与BeanFactory
- block,inline和inlinke-block细节对比
- 百度导航坐标转换问题
- 导航栏吸顶实现原理 JS
- 2016年工作中遇到的问题21-30
- 【转载】非常好的理解遗传算法的例子
- poj1236 Network of Schools
- LeetCode Remove Linked List Elements
- linux 下解压命令汇总
- Linux "ls -l"文件列表权限详解
- 设计模式之代理模式