解决安卓地图路径规划中自定义路线颜色和宽度
以骑行为例子。
路线是通过addToMap()方法加在地图上
rideRouteOverlay.addToMap();
进入到这个方法中(ctrl+鼠标点击)
源码:
/**
* 添加骑行路线到地图中。
* @since V3.5.0
*/
public void addToMap() {
initPolylineOptions();
try {
List<RideStep> ridePaths = ridePath.getSteps();
for (int i = 0; i < ridePaths.size(); i++) {
RideStep rideStep = ridePaths.get(i);
LatLng latLng = AMapUtil.convertToLatLng(rideStep
.getPolyline().get(0));
addRideStationMarkers(rideStep, latLng);
addRidePolyLines(rideStep);
}
addStartAndEndMarker();
showPolyline();
} catch (Throwable e) {
e.printStackTrace();
}
}
可知是initPolylineOptions()方法来显示路线
/**
* 初始化线段属性
*/
private void initPolylineOptions() {
if(walkStationDescriptor == null) {
walkStationDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.amap_ride);
}
mPolylineOptions = null;
mPolylineOptions = new PolylineOptions();
// mPolylineOptions.color(getDriveColor()).width(getRouteWidth());
// mPolylineOptions.color(getWalkColor()).width(getRouteWidth());
mPolylineOptions
.color(getDriveColor())
.setCustomTexture(BitmapDescriptorFactory.fromResource(R.drawable.map_alr))
.width(getRouteWidth());
}
可以看到mPolylineOptions.color、setCustomTexture和width来控制路线的颜色、形状和宽度
protected float getRouteWidth() {
return 24f;
}
protected int getDriveColor() {
return Color.parseColor("#537edc");
}
通过修改getRouteWidth()来改变宽度
通过getxxxcolor()来改变颜色