android百度地图开发之步行路线规划
android百度地图开发之路线规划
1.下载相关开发包
首先要进入百度地图开放平台,https://lbsyun.baidu.com/index.php?title=androidsdk,然后点击产品下载:
下载过后解压,会得到下面的文件夹:
打开下面的文件夹,
然后再解压最下面这个压缩包,解压过后就可以看到一个android studio的项目
打开项目找到overlayutil包,并复制到你的项目里面去。
这是你项目的样子,
然后在把再把百度开发包里面的其他资源复制到你的项目,
其中这几个东西不必导入
其中res这个文件夹的东西都要复制到自己的项目中,
当然你也完全不必这么做,可以把下载来的百度地图开发包当做jar包导入自己的项目,但我这么试过,就是一直出错,应该是我太菜了
2.编程实现
这部分你可以去参考百度地图的开发文档,https://lbsyun.baidu.com/index.php?title=androidsdk/guide/route/walk
1.首先定义RoutePlanSearch mSearch = RoutePlanSearch.newInstance();
2.然后设置监听函数
@Override public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) { //创建WalkingRouteOverlay实例 WalkingRouteOverlay overlay = new WalkingRouteOverlay(mBaiduMap); if (walkingRouteResult.getRouteLines().size() > 0) { //获取路径规划数据,(以返回的第一条数据为例) //为WalkingRouteOverlay实例设置路径数据 overlay.setData(walkingRouteResult.getRouteLines().get(0)); //在地图上绘制WalkingRouteOverlay overlay.addToMap(); } } };
如果你想得到路线的距离的话,可以使用:getDistance()函数
3.设置路线规划检索监听器mSearch.setOnGetRoutePlanResultListener(listener);
准备起终点信息
PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", "西二旗地铁站");PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", "百度科技园");
当然你也可以使用经纬度来设置:
PlanNode stNode = PlanNode.withLocation(new LatLng(myLocation.getLatitude(), myLocation.getLongitude()));PlanNode enNode = PlanNode.withLocation(new LatLng(myLocation.getLatitude()+0.0005, myLocation.getLongitude()+0.0005));
上面代码中myLocation是当前的位置,你也可以设置成其他经纬度。
5.发起检索mSearch.walkingSearch((new WalkingRoutePlanOption())
.from(stNode)
.to(enNode));
last but not least:
不要在oncreate函数里面执行路线规划的代码,初始化变量可以,我就是因为这个原因找了半天的bug,因为我想在程序启动的时候就看到规划的路线,这是不行的,你可以设置一个按钮,然后点这个按钮过后再进行路线规划!
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- 或许您还不知道的八款开源Android游戏引擎
- Android之如果解决Android(安卓)studio项目里面的类名不能重命名
- Android的项目不能直接引用可移植类库的项目解决方法
- Eclipse中Android公共库的正确建立及调用方法
- Android学习路线(转)
- Android自动化测试框架Robotium学习笔记
- Android(安卓)组件化,从入门到不可自拔