//规划路线 Activity实现OnGetRoutePlanResultListener接口
private RoutePlanSearch routePlanSearch;
//这里传入 起点LatLng 和终点的LatLng
private void guiHua(LatLng start,LatLng end){
if (routePlanSearch==null) {
routePlanSearch=RoutePlanSearch.newInstance();
routePlanSearch.setOnGetRoutePlanResultListener(this);
}
DrivingRoutePlanOption option=new DrivingRoutePlanOption();
option.from(PlanNode.withLocation(start))
.to(PlanNode.withLocation(end));
routePlanSearch.drivingSearch(option);
}
/**
实现OnGetRoutePlanResultListener接口 重写这几个方法
*/
//汽车
@Override
public void onGetBikingRouteResult(BikingRouteResult arg0) {
// TODO Auto-generated method stub
}
//驾驶
@Override
public void onGetDrivingRouteResult(DrivingRouteResult result) {
// TODO Auto-generated method stub
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(mContext, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
}
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
// 起终点或途经点地址有岐义,通过以下接口获取建议查询信息
// result.getSuggestAddrInfo()
return;
}
if (result != null&&result.error == ERRORNO.NO_ERROR) {
DrivingRouteOverlay overlay=null;
List<DrivingRouteLine>list=result.getRouteLines();
if (list.size()>0) {
//获取驾车距离
double juli=(double)list.get(0).getDistance()/1000;
tv_juli.setText(juli+"km");
//这里将第一条路线显示在地图上
overlay=new DrivingRouteOverlay(baiduMap);
overlay.setData(list.get(0));
overlay.addToMap();
overlay.zoomToSpan();
}
//这里将所有路线显示在地图上
// for (DrivingRouteLine line:list) {
// overlay=new DrivingRouteOverlay(baiduMap);
// overlay.setData(line);
// overlay.addToMap();
// overlay.zoomToSpan();
// }
}
}
//公交
@Override
public void onGetTransitRouteResult(TransitRouteResult arg0) {
// TODO Auto-generated method stub
}
//步行
@Override
public void onGetWalkingRouteResult(WalkingRouteResult result) {
// TODO Auto-generated method stub
// 获取步行线路规划结果
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(mContext, "抱歉,未找到结果",
Toast.LENGTH_SHORT).show();
}
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
// 起终点或途经点地址有岐义,通过以下接口获取建议查询信息
// result.getSuggestAddrInfo()
return;
}
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
WalkingRouteOverlay overlay = new MyWalkingRouteOverlay(
baiduMap);
//这里同上(驾车)
baiduMap.setOnMarkerClickListener(overlay);
overlay.setData(result.getRouteLines().get(0));
overlay.addToMap();
overlay.zoomToSpan();
}
}