官方微信公众平台

百度地图api,定位和导航之间的坑…


发布时间:2018-08-03

百度地图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好像每个都有这个问题。

iOSAndroid  要统一上传到后台的经纬度  必须要同一种类型的才行


技术总结:济宁远之航网络科技技术三部张茂瑞

  • 专注于服务电商领域

  • 资深电商服务专家

  • 一对一专属会员经理

  • 365万用户诚意推荐

业务QQ:1014905292

业务电话:13053758877

客服电话:400-032-5039

服务时间:08:00 — 18:00

扫一扫了解详情

All Rights Reserved © 2014-2019 鲁ICP备14000487号-4 山东远之航信息技术有限公司 |

鲁公网安备 37081102000368号