百度地图导航的官网:http://developer.baidu.com/map/index.php?title=android-navsdk

里面的demo写的非常详细 ,我主要说一下我个人遇到的问题以及对它的理解:
首先贴核心代码:
【路径规划】

private void startCalcRoute(int netmode) {// 获取输入的起终点RoutePlanNode startNode = new RoutePlanNode(sX, sY,RoutePlanNode.FROM_MAP_POINT, eXString, eXString);// 终点RoutePlanNode endNode = new RoutePlanNode(eX, eY,RoutePlanNode.FROM_MAP_POINT, eYString, eYString);// 将起终点添加到nodeListArrayList<RoutePlanNode> nodeList = new ArrayList<RoutePlanNode>(2);nodeList.add(startNode);nodeList.add(endNode);BNRoutePlaner.getInstance().setObserver(new RoutePlanObserver(this, null));// 设置算路方式BNRoutePlaner.getInstance().setCalcMode(NE_RoutePlan_Mode.ROUTE_PLAN_MOD_MIN_TIME);// 设置算路结果回调BNRoutePlaner.getInstance().setRouteResultObserver(mRouteResultObserver);// 设置起终点并算路boolean ret = BNRoutePlaner.getInstance().setPointsToCalcRoute(nodeList, NL_Net_Mode.NL_Net_Mode_OnLine);if (!ret) {Toast.makeText(this, "规划失败", Toast.LENGTH_SHORT).show();}}

这里sx,sy,ex,sy是起点跟终点的纬度经度,这里注意的是它们的取值都是整型,也就是说例如纬度为:28.242345 那要将它转化成2824234 把最后的那个5去掉。

【实时导航】

百度实时导航给了一个很好的工具类,在官网demo里面的BNavigatorActivity.java

可以直接在别的类里面调用

    private void startNavi(boolean isReal) {if (mRoutePlanModel == null) {Toast.makeText(this, "请先算路!", Toast.LENGTH_LONG).show();return;}// 获取路线规划结果起点RoutePlanNode startNode = mRoutePlanModel.getStartNode();// 获取路线规划结果终点RoutePlanNode endNode = mRoutePlanModel.getEndNode();if (null == startNode || null == endNode) {return;}// 获取路线规划算路模式int calcMode = BNRoutePlaner.getInstance().getCalcMode();Bundle bundle = new Bundle();bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_VIEW_MODE,BNavigator.CONFIG_VIEW_MODE_INFLATE_MAP);bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_CALCROUTE_DONE,BNavigator.CONFIG_CLACROUTE_DONE);bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_START_X,startNode.getLongitudeE6());bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_START_Y,startNode.getLatitudeE6());bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_END_X, endNode.getLongitudeE6());bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_END_Y, endNode.getLatitudeE6());bundle.putString(BNavConfig.KEY_ROUTEGUIDE_START_NAME,mRoutePlanModel.getStartName(this, false));bundle.putString(BNavConfig.KEY_ROUTEGUIDE_END_NAME,mRoutePlanModel.getEndName(this, false));bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_CALCROUTE_MODE, calcMode);if (!isReal) {// 模拟导航bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_LOCATE_MODE,RGLocationMode.NE_Locate_Mode_RouteDemoGPS);} else {// GPS 导航bundle.putInt(BNavConfig.KEY_ROUTEGUIDE_LOCATE_MODE,RGLocationMode.NE_Locate_Mode_GPS);}Intent intent = new Intent(RoutePlanActivity.this,BNavigatorActivity.class);intent.putExtras(bundle);startActivity(intent);}

这里遇到的问题就是 注意如果每次都要在resume时候再次路径规划的话 就直接把地图初始化放在resume里 这样就可以实现 开启的时候 接电话的时候 切换到其他的activity的时候 都可以再次进行路径规划(因为你的位置会变动)

百度地图SDK导航(路径规划+实时导航)相关推荐

  1. Android 调用百度地图sdk 实现路线规划导航

    Android 调用百度地图sdk 实现路线规划导航 功能: 实现实时/需求定位 卫星地图查看 路况 周边poi检索 地点输入提示检索 驾驶 步行 公交 骑行路线规划 注:以上为实现的大概功能 ,接下 ...

  2. 百度地图检索以及路径规划

    代码地址如下: http://www.demodashi.com/demo/11030.html 一.准备工作 需要集成百度地图SDK 需要申请百度地图AppKey 本例子实现了POI检索以及详情检索 ...

  3. 安卓百度地图之步行路径规划

    使用的是百度地图的API,地址是:androidsdk | 百度地图API SDK 步骤一:配置build.gradle dependencies {implementation 'com.baidu ...

  4. 百度地图js简单路径规划

    lujing.html <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content= ...

  5. 结合奥维地图与百度地图api进行路径规划开发测试(python、HTML)

    第一步:奥维地图如何得到规划路径上轨迹点的经纬度(参见我之前的博客). 第二步:各种坐标系转换,选择对应转换坐标系以及输入输出文件路径后可以直接调用(python批量转换,每次运行前清空输出文件res ...

  6. Android安卓百度地图定位+导航+路径规划实现APP(源码+APK) 毕业设计

    百度地图实时定位+导航路径规划的实现APP 本科生毕业设计:<一种智能停车系统的设计>,成都信息工程大学,2018 使用到的技术 百度地图SDK LBS云数据管理 路径规划与导航 二维码扫 ...

  7. 基于百度地图sdk的地图app开发(七)——导航和模拟导航

    这是基于百度地图sdk的地图app开发系列博客第七篇 代码仓库位置:https://github.com/YanhuiLu89/lmap.git 上一篇 基于百度地图sdk的地图app开发(六)--路 ...

  8. Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!...

    Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...

  9. Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!

    Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...

最新文章

  1. 基于级联FFT的广义互相关算法在声源定位中的应用
  2. 兼容ie9以下css3,hover和圆角(htc)
  3. Linux 设备树device tree 使用手册
  4. Object C学习笔记19-枚举(转)
  5. jquery实现多行滚动效果
  6. gophp解释器_【干货】Gisp 解释器 Golang 辅助开发工具
  7. Gitlab CI-3.遇到的问题
  8. 跨浏览器的placehold
  9. Linux安装Gitlab
  10. pytorch 入门学习 实现线性回归-5
  11. 入门排序(冒泡、选择、直接)
  12. numpy array和python list_Python list与NumPy array 区分详解
  13. matlab显示图片
  14. 选修课程期末作业 : 大象基金交易信息系统分析与设计报告
  15. Linux动态链接库.so文件的命名及用途总结
  16. centos8安装失败 Linux dd,在RHEL 8/CentOS 8上安装Telegraf的方法
  17. ipv6地址概述——配置ipv6
  18. html onclick事件无效 巨坑
  19. 原生JS搭配canvas模式开发的调色盘
  20. C PRIMER PLUS第七章11题

热门文章

  1. 基于SpringBoot的影视/短视频网站系统
  2. linux服务器磁盘空间扩充
  3. 微信小程序:二开版优化新紫色UI云开发新款壁纸小程序源码
  4. SDN:简述对各类SDN控制器的认识
  5. 真正中文攻略之 SAKURA~雪月華~ 花鳥風月プレミアムエディション 汉化、攻略...
  6. git上传到阿里云code
  7. 发外链的平台有哪些,六个免费发外链的优秀平台
  8. 小白学NLP学习笔记-入门
  9. java迅雷下载excel,Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...
  10. 微信扫一扫 扫普通链接二维码打开微信小程序