如何在地图上生成一个完整的行走路线规划???
其实很容易,我们只需要构造一个search()函数就够用了
private void search() {
MKSearch search=new MKSearch();
search.init(bmapmanager, new MyMKSearchListenerAdapter(){
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult result,int iError)
{
RouteOverlay overlay=new RouteOverlay(WalkActivity.this, mapview);
setData(overlay,result);
mapview.getOverlays().add(overlay);
mapview.refresh();
super.onGetWalkingRouteResult(result, iError);
}
这里首先需要明确的是,init函数的两个参数分别是MKSearch类型和MKSearchListener类型的实例化对象构成的
这里主要是和一种异步函数这种机制有关系。异步函数可以理解为返回值在其他类的函数(在MKSearcListener类)
然后
void | onGetAddrResult(MKAddrInfo result, int iError) 返回地址信息搜索结果 |
void | onGetBusDetailResult(MKBusLineResult result, int iError) 返回公交车详情信息搜索结果 |
void | onGetDrivingRouteResult(MKDrivingRouteResult result, int iError) 返回驾乘路线搜索结果 |
void | onGetPoiDetailSearchResult(int type, int iError) 返回poi相信信息搜索的结果 |
void | onGetPoiResult(MKPoiResult result, int type, int iError) 返回poi搜索结果 |
void | onGetSuggestionResult(MKSuggestionResult result, int iError) 返回联想词信息搜索结果 |
void | onGetTransitRouteResult(MKTransitRouteResult result, int iError) 返回公交搜索结果 |
void | onGetWalkingRouteResult(MKWalkingRouteResult result, int iError) 返回步行路线搜索结果 |
onGetWalkingRouteResult
void onGetWalkingRouteResult(MKWalkingRouteResult result, int iError)
- 返回步行路线搜索结果
-
-
参数:
-
result
- 搜索结果 -
iError
- 错误号,0表示正确返回
-
new 一个 setdata()放入数据 overlay getoverlay(获得集合) add(将overlay加入到该集合中) fresh(手动刷新)
onGetWalkingRouteResult(MKWalkingRouteResult result,int iError)
setData(overlay,result);//注意看setData 会使用到result
MKPlanNode start=new MKPlanNode();
start.pt=point;
MKPlanNode end=new MKPlanNode();
end.pt=pingpangpoint;
search.walkingSearch("西安", start, "西安", end);
}
search.walkingSearch("西安", start, "西安", end);//start和end就是我们所说的起点和终点,
类型是MKPlanNode,需要进行初始化,之后start.pt=point;就是付给它初始值。
protected void setData(RouteOverlay overlay, MKWalkingRouteResult result) {
if(result.getNumPlan()>0){
MKRoutePlan plan=result.getPlan(0);
MKRoute route=plan.getRoute(0) ;
overlay.setData(route);
}
这个是我们定义的setData函数plan是result和route的桥梁,plan通过getPlan得到,plan再一次getroute得到route,
route才能够作为setData的输入值。