想把人的图标去掉、再把终点的图标样式换一下,最后还可以设置一下路线的颜色粗细什么的。摸索了几个小时,摸了一个解决办法:
重写WalkRouteOverlay的类,覆盖getBuslineWidth() 、getWalkColor()、getEndBitmapDescriptor()、 getStartBitmapDescriptor() 、getWalkBitmapDescriptor() 。
直接上代码吧,很简单的一个类:(在这里想说一下,不知道startMarker、endMarker和stationMarkers这些有什么用,摸索过程中被这些混淆视听了)
public class RouteTool extends WalkRouteOverlay{
public int color;//路线颜色
public float lineWidth;//路线宽度
/*修改路线宽度*/
@Override
protected float getBuslineWidth() {
return lineWidth;
}
/*修改路线颜色*/
@Override
protected int getWalkColor() {
return color;
}
/*
修改终点marker样式,这里的R.drawable.none是我自己画的一个PNG图片,图片什么都看不到,而这么修改就等于是把这些marker都去掉了,只留下一条规划的路线,当然可以把BitmapDescriptor 的起点、终点等做成域封装起来供别的类修改,现在我比较懒,就用汉字说明就好了
*/
@Override
protected BitmapDescriptor getEndBitmapDescriptor() {
BitmapDescriptor reBitmapDescriptor=new BitmapDescriptorFactory().fromResource(R.drawable.none);
return reBitmapDescriptor;
}
/*修改起点marker样式*/
@Override
protected BitmapDescriptor getStartBitmapDescriptor() {
BitmapDescriptor reBitmapDescriptor=new BitmapDescriptorFactory().fromResource(R.drawable.none);
return reBitmapDescriptor;
}
/*修改中间点marker样式*/
@Override
protected BitmapDescriptor getWalkBitmapDescriptor() {
BitmapDescriptor reBitmapDescriptor=new BitmapDescriptorFactory().fromResource(R.drawable.none);
return reBitmapDescriptor;
}
/*一个无聊的构造*/
public RouteTool(Context arg0 AMap arg1 WalkPath arg2 LatLonPoint arg3
LatLonPoint arg4) {
super(arg0 arg1 arg2 arg3 arg4);
}
/*一个工具方法,修改颜色和宽度*/
public void setView(int colorfloat width) {
this.color=color;
lineWidth=width;
}
}
然后我直接在ACTIVITY里面实现了路径规划接口OnRouteSearchListener,在onWalkRouteSearched()回调方法中新建了这个类,并调用了setView()方法。运行后,随便整俩点,做路径规划搜索,如果跨度大了可能步行的路径数据会有点延迟,下面给出一部分效果截图,这个绿色气泡是自己在ACTIVITY类里面加的一个marker,至于里面还有一条红线,那是地图的地铁来的。