Android百度地图SDK 导航SDK2.0结合定位SDK6.0.5的导航参数设置方法
来源:互联网 发布:陈丹丹淘宝店叫什么 编辑:程序博客网 时间:2024/05/16 04:30
前段时间做了一阵百度地图的内容,还未来的及总结,很快有些问题及解决办法都忘了,现在记录下之前比较纠结的问题,分享如下
如题,现在的导航SDK2.0的导航发起函数如下
public boolean launchNavigator(Activity activity, java.util.List<BNRoutePlanNode> nodes, int preference, boolean isGPSNav, BaiduNaviManager.RoutePlanListener listener)
文档给出的参数释义如下:
activity
- 建议是应用的主Activitynodes
- 传入的算路节点,顺序是起点、途经点、终点,其中途经点最多三个,参考 BNRoutePlanNodepreference
- 算路偏好,参考RoutePlanPreference定义isGPSNav
- true表示真实GPS导航,false表示模拟导航listener
- 开始导航回调监听器,在该监听器里一般是进入导航过程页面取文档的释义如下:
public BNRoutePlanNode(double longitude, double latitude, java.lang.String name, java.lang.String description, BNRoutePlanNode.CoordinateType coType)
算路节点构造方法.
- 参数:
longitude
- 经度latitude
- 纬度name
- 算路节点名description
- 算路节点地址描述coType
- 坐标类型,参考 CoordinateType
BD09_MC
百度墨卡托坐标
GCJ02
国测局坐标
WGS84
GPS坐标
坐标类型必须为以上三种,否则如果不指定或者默认匹配不到这三种坐标类型则都会导致算路失败。但是百度定位SDK的坐标系一般用的是bd09ll类型,这时候就需要用到类型转换,在5.3版本之前可以有另一种方法来转换的,但是5.3版本就取消了,于是6.0.5之后就有了这个函数来做转换,如下
public static BDLocation getBDLocationInCoorType(BDLocation src,
java.lang.String transferType)
根据设定的转换坐标系类型得到相应坐标系下的BDLocation
参数:
BDLocation - src 原始BDLocation
transferType - BDLocation.BDLOCATION_GCJ02_TO_BD09/BDLOCATION_GCJ02_TO_BD09LL/BDLOCATION_BD09_TO_GCJ02/ BDLOCATION_BD09LL_TO_GCJ02
用这个就可以直接将百度定位和地图获取的BDLocation转换成可以直接使用的导航参数。
以此希望可以帮到尚不明白如何转换的同学!
部分代码如下:
// 发起算路private void startCalcRoute(int calcMode) {// 显示加载对话框DialogUtil.getInstance().showProgressDialog(mActivity);if (mBdLocation == null) {Toast.makeText(this, getString(R.string.map_location_failed), Toast.LENGTH_LONG).show();// 取消加载对话框DialogUtil.getInstance().dismissProgressDialog();return;}if (calcMode == 0)calcMode = BaiduNaviManager.RoutePlanPreference.ROUTE_PLAN_MOD_AVOID_TAFFICJAM;double sX = 0, sY = 0, eX = 0, eY = 0;sX = LocationClient.getBDLocationInCoorType(mBdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();sY = LocationClient.getBDLocationInCoorType(mBdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude();BNRoutePlanNode startNode = new BNRoutePlanNode(sY, sX, "我的位置", "我的位置");
BDLocation bd = new BDLocation();bd.setLatitude(destLat);bd.setLongitude(destLng);eX = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();eY = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude();BNRoutePlanNode endNode = new BNRoutePlanNode(eY, eX, strDestAddress, strDestAddress);ArrayList<BNRoutePlanNode> nodeList = new ArrayList<BNRoutePlanNode>(2);nodeList.add(startNode);nodeList.add(endNode);BaiduNaviManager.getInstance().launchNavigator(mActivity, nodeList, calcMode, true,new MapRoutePlanListener(startNode));}
2 0
- Android百度地图SDK 导航SDK2.0结合定位SDK6.0.5的导航参数设置方法
- Android百度地图导航SDK2.0 定位SDK6.0.5的导航参数设置方法
- Android 百度地图API 定位 导航 代码
- Android 百度地图API 定位 导航
- 百度地图、定位、导航SDK开发问题汇总
- 百度地图定位与导航
- android百度定位导航
- Android调用百度地图app , 实现百度定位、导航
- Android 百度地图添加标记+定位+导航(从定位点开始导航到自己添加的点)
- Android studio中集成百度地图+百度定位+导航SDK冲突导致部分手机出现“百度导航引擎初始化失败”解决方案
- Android百度地图SDK 导航初始化和地图初始化引起的冲突
- Android百度地图API实现定位与目的地导航
- Android百度地图,绘制,覆盖物,导航,定位,细腻分解!
- Android百度地图开发定位和路线导航
- Android百度地图导航的那些坑
- Android百度地图导航的那些坑
- ios百度导航SDK,iOS开发之百度地图导航
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!
- HDU 1848 Fibonacci again and again(SG函数)
- 【Android源码解析】选择多张图片上传多图预览
- [效率提升]工作中的那些命令行
- hdu 1258 Sum It Up
- POJ-1258Agri-Net
- Android百度地图SDK 导航SDK2.0结合定位SDK6.0.5的导航参数设置方法
- Android 历史 基本框架
- POJ 2418 Hardwood Species(字典树)
- 解密SVM系列(四):SVM非线性分类原理实验
- 1095
- HDOJ Matrix multiplication 4920【矩阵相乘】
- 关于Linealayout 各item点击效果,比较不错的selector
- UMeng 微博分享,报invalid_client 和 redirect_uri_mismatch
- Codeforces Round #274 (Div. 2) d Long Jumps 尺取法 + set