百度地图api,定位和导航之间的坑…
获取定位信息的时候会定义一个经纬度类型 :
经纬度类型分别为GCJ02,WGS84,BD09_MC,BD09LL。
例如百度地图:
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
//可选,默认gcj02,设置返回的定位结果坐标系
option.setCoorType("bd09ll");
mLocationClient.setLocOption(option);
用setCoorTypr方法确认经纬度获取类型。不设置默认GCJ02。
获取经纬度后开启导航的时候坑来了。。。。
当我获取BD09LL类型的经纬度后
在地图图层添加覆盖物的时候没有什么问题位置非常确,但是发起正式导航的时候位子和路线完全不对。
在百度地图发起正式导航的时候默认使用的经维度是GCJ02,但是在地图图层中添加覆盖物的时候用的经维度类型是BD09LL,所以导致了上面的问题
当获取GCJ02国测坐标时添加覆盖物的时候就会不准确
解决方案:
BNRoutePlanNode sNode = new BNRoutePlanNode(116.30142, 40.05087, “百度大厦”, “百度大厦”, CoordinateType.BD09LL);
BNRoutePlanNode eNode = new BNRoutePlanNode(116.39750, 39.90882, “北京天安门”, “北京天安门”, CoordinateType.BD09LL);
在发起正式导航的时候定义一下使用经纬度的类型 Coordinate.BD09LL
BNRoutePlanNode方法中的四个值分别为 经度,维度,起点名称(可为空),终点名称(可为空),经纬度类型。
以上问题导致我们的程序出现导航不准确的bug,因为我们的程序发起导航的时候,没定义经纬度类型导致。 我们的app好像每个都有这个问题。
iOS和Android 要统一上传到后台的经纬度 必须要同一种类型的才行
技术总结:济宁远之航网络科技技术三部张茂瑞
All Rights Reserved © 2014-2018 鲁ICP备14000487号 | 营业执照 | 增值电信业务许可证 鲁B2-20190121 | 山东远之航信息技术有限公司 |