先讲一下路径规划的主要函数:
说明:city为待查公交线路所在城市,start和end分别是起点和终点
驾车路线搜索:mMKSearch.drivingSearch(null, start, null, end);
步行线路搜索:mMKSearch.walkingSearch(null, start, null, end);
公交线路搜索的方法:transitSearch(String city, MKPlanNode start, MKPlanNode end),city;
另外,公交和驾车的策略:
其他的可以看百度官网。
我的应用代码实例如下:(以公交方式为例)
if (mBtnTransit.equals(v)) {
//单击搜索后,关闭软键盘
InputMethodManager imm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editEn.getWindowToken(), 0);
if(stNode.name.equals("")){
Toast toast=Toast.makeText(RoutePlan.this, "您的起点输入为空!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}else if(enNode.name.equals("")){
Toast toast=Toast.makeText(RoutePlan.this, "您的终点输入为空!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}else{
mBtnDrive.setClickable(false);
mBtnDrive.setTextColor(Color.GRAY);
mBtnWalk.setClickable(false);
mBtnWalk.setTextColor(Color.GRAY);
bus_mintime.setVisibility(View.VISIBLE);
bus_minexchange.setVisibility(View.VISIBLE);
bus_minwalk.setVisibility(View.VISIBLE);
bus_mintime.setOnClickListener(new OnClickListener(){
@Override //公交时间优先
public void onClick(View arg0) {
mSearch.setTransitPolicy(MKSearch.EBUS_TIME_FIRST);
mSearch.transitSearch("赣州市", stNode, enNode);
Log.i("bus search","EBUS_TIME_FIRST");
dialog.show();
bus_mintime.setVisibility(View.GONE);
bus_minexchange.setVisibility(View.GONE);
bus_minwalk.setVisibility(View.GONE);
mBtnDrive.setClickable(true);
mBtnDrive.setTextColor(Color.BLUE);
mBtnWalk.setClickable(true);
mBtnWalk.setTextColor(Color.BLUE);
}
});
bus_minexchange.setOnClickListener(new OnClickListener(){
@Override //公交最少换乘
public void onClick(View arg0) {
mSearch.setTransitPolicy(MKSearch.EBUS_TRANSFER_FIRST);
mSearch.transitSearch("赣州市", stNode, enNode);
Log.i("bus search","EBUS_TRANSFER_FIRST");
dialog.show();
bus_mintime.setVisibility(View.GONE);
bus_minexchange.setVisibility(View.GONE);
bus_minwalk.setVisibility(View.GONE);
mBtnDrive.setClickable(true);
mBtnDrive.setTextColor(Color.BLUE);
mBtnWalk.setClickable(true);
mBtnWalk.setTextColor(Color.BLUE);
}
});
bus_minwalk.setOnClickListener(new OnClickListener(){
@Override //公交最少步行
public void onClick(View arg0) {
mSearch.setTransitPolicy(MKSearch.EBUS_WALK_FIRST);
mSearch.transitSearch("赣州市", stNode, enNode);
Log.i("bus search","EBUS_WALK_FIRST");
dialog.show();
bus_mintime.setVisibility(View.GONE);
bus_minexchange.setVisibility(View.GONE);
bus_minwalk.setVisibility(View.GONE);
mBtnDrive.setClickable(true);
mBtnDrive.setTextColor(Color.BLUE);
mBtnWalk.setClickable(true);
mBtnWalk.setTextColor(Color.BLUE);
}
});
}
效果如图:
安卓市场:http://apk.hiapk.com/html/2013/05/1468059.html?module=256&info=IWjtVg9cqVJLYg%3D%3D
N多市场:http://www.nduoa.com/apk/detail/553415
360手机助手:http://zhushou.360.cn/search/index/?kw=%E6%A0%A1%E5%9B%AD%E5%B0%8F%E5%8A%A9%E6%89%8B
百度应用:http://as.baidu.com/a/item?docid=3101724&pre=web_am_se
优亿市场(eoe):http://www.eoemarket.com/search/apps/?keyword=%E6%A0%A1%E5%9B%AD%E5%B0%8F%E5%8A%A9%E6%89%8B