您的位置:首页 > 其它

百度地图:标注驾车路线搜索

2013-11-02 11:47 363 查看
在http://blog.csdn.net/lj102800/article/details/13998543基础上添加

//实例化地图的查询类
mkSearch = new MKSearch();
mkSearch.init(bMapManager, new MySearchListener());

//给起始点构建一个坐标
start=new MKPlanNode();
start.pt=new GeoPoint((int)(39.915*1E6),(int)(116.404*1E6));
end=new MKPlanNode();
end.pt=new GeoPoint(40057031,116307852);

//		//行走路线搜索
//		mkSearch.walkingSearch(null, start, null, end);
//驾车路线图考虑的优先策略
mkSearch.setDrivingPolicy(MKSearch.EBUS_TIME_FIRST);//采用的是时间优先
//驾乘路线搜索
//参数:起点所在城市,搜索的起点,终点所在城市,搜索的终点
mkSearch.drivingSearch(null, start, null, end);


public class MySearchListener implements MKSearchListener{

@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
}

@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
}
//返回驾乘路线搜索结果
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult result,int iError) {
if(result==null){
return ;
}
RouteOverlay routeOverlay=new RouteOverlay(MainActivity.this, mapView);
//从A点到B点的驾车路线会有多条路线
routeOverlay.setData(result.getPlan(0).getRoute(0));
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();//刷新
}

@Override
public void onGetPoiDetailSearchResult(int type, int iError) {
}
// 返回poi搜索结果
@Override
public void onGetPoiResult(MKPoiResult result, int type, int iError)  {
}

@Override
public void onGetRGCShareUrlResult(String arg0, int arg1) {
}

@Override
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
}

@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
}

@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
}
}

效果如下图

驾车路线搜索



步行线路搜索

步行线路搜索与驾车路线搜索类似,只需将mMKSearch.drivingSearch(null, start, null, end)修改为mMKSearch.walkingSearch(null, start, null, end),获取结果的方法改为重写onGetWalkingRouteResult即可。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: