android百度地图多路线规划,android百度地图开发之步行路线规划

android百度地图开发之路线规划

1.下载相关开发包

首先要进入百度地图开放平台,https://lbsyun.baidu.com/index.php?title=androidsdk,然后点击产品下载:

cb266ab8b494b5c0a0205a67a072461e.png

142487854eff8f7c244bcde6a563d29e.png

下载过后解压,会得到下面的文件夹:

bc9b0cdfd3ceebf7085bb3abbfda6194.png

打开下面的文件夹,

85ea444aa629b4fcd0c5c85f76ca2f92.png

然后再解压最下面这个压缩包,解压过后就可以看到一个android studio的项目

c9ea6dbcfa587bf26175ebb3396d8a49.png打开项目找到overlayutil包,并复制到你的项目里面去。5873a53d5eda317d874076d4f0c4a5e0.png

这是你项目的样子,

afe24210a7f6b0e68e8b8928acc47f86.png

然后在把再把百度开发包里面的其他资源复制到你的项目,

其中这几个东西不必导入

857a973453d41e585370972684ddfb42.png其中res这个文件夹的东西都要复制到自己的项目中,04c995c437bd409fe429c998513620e6.png

当然你也完全不必这么做,可以把下载来的百度地图开发包当做jar包导入自己的项目,但我这么试过,就是一直出错,应该是我太菜了

2.编程实现

这部分你可以去参考百度地图的开发文档,https://lbsyun.baidu.com/index.php?title=androidsdk/guide/route/walk

1.首先定义RoutePlanSearch mSearch = RoutePlanSearch.newInstance();

2.然后设置监听函数

b2661b97ab18770ec6ea8f2fdd3951ca.png

@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()函数

c8b6097165db8f36ec3bae26a5c00a49.png

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,因为我想在程序启动的时候就看到规划的路线,这是不行的,你可以设置一个按钮,然后点这个按钮过后再进行路线规划!