本文主要是介绍003 走上移动开发之安卓项目实战(百度地图:在地图范围内进行检索与驾车路线搜索),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在上一篇文章中给大家带来了给地图如何添加标注物,这篇文章将要告诉大家如何在地图的范围内进行检索于对路线进行搜索
如果有什么不懂的请看上一篇帖子
《002 走上移动开发之安卓项目实战(百度地图:给地图添加标注物)》
如果还有什么看不懂的请您先从第一篇文章看起
《001 走上移动开发之安卓项目实战(百度地图:建立百度地图开发环境)》
还请大家注意在文章进行转载的时候麻烦注明出处
《http://blog.csdn.net/shuaiyinoo》谢谢
第一个:接下来正式开始给大家带来新的知识点,首先给大家带来的是如何在地图中进行检索
在进行地图检索的时候其实特别的简单,你只需要自定义一个 MySearchListener ,去实现 MKSearchListener 这个有百度地图提供的API即可,当然里面还得实现类里面的方法
//搜索对象的实现public class MySearchListener implements MKSearchListener{@Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) {}@Overridepublic void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {}@Overridepublic void onGetDrivingRouteResult(MKDrivingRouteResult result, int type) {//对调用的搜索方法进行回调响应if(result == null){return;}RouteOverlay routeOverlay = new RouteOverlay(BaiDu_SuYiActivity.this, mapView);//里面的参赛之所以填0是应为我们只需要返回第一条线路routeOverlay.setData(result.getPlan(0).getRoute(0));mapView.getOverlays().add(routeOverlay);mapView.invalidate();}@Overridepublic void onGetPoiDetailSearchResult(int arg0, int arg1) {}@Overridepublic void onGetPoiResult(MKPoiResult result, int type, int iError) {//对调用的搜索方法进行回调响应if(result == null){return;}PoiOverlay poiOverlay = new PoiOverlay(BaiDu_SuYiActivity.this, mapView);poiOverlay.setData(result.getAllPoi());mapView.getOverlays().add(poiOverlay);mapView.invalidate();}@Overridepublic void onGetRGCShareUrlResult(String arg0, int arg1) {}@Overridepublic void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {}@Overridepublic void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {}@Overridepublic void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {}}
注意别忘了定义搜索对象,在类的最前面定义
//定义搜索对象private MKSearch mkSearch ;
然后在 onCreate 方法中加入如下代码
比如我要以天安门为中心搜索周围5000M的厕所就可以用
mkSearch.poiSearchNearBy("厕所", new GeoPoint((int)(39.915*1E6),(int)(116.404*1E6)), 5000);
即可,这里我就不一一列举。
//v4.00//mapController.setZoom(14);//在地图范围内实现对物体的搜索//mkSearch = new MKSearch();//mkSearch.init(bMapManager, new MySearchListener());//这个方法表示根据中心点搜索周边的内容//mkSearch.poiSearchNearBy("厕所", new GeoPoint((int)(39.915*1E6),(int)(116.404*1E6)), 5000);
第二个:要给大家介绍的就是对驾车路线的搜索
第一步跟 《第一个:在地图范围内搜索一样》自定义一个 MySearchListener ,去实现 MKSearchListener 这个有百度地图提供的API即可,当然里面还得实现类里面的方法
然后同样在 onCreate 方法中加入如下代码
//v5.00mapController.setZoom(14);//在地图范围内实现对物体的搜索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.setDrivingPolicy(MKSearch.EBUS_TIME_FIRST);//调用路线的回调方法mkSearch.drivingSearch(null, start, null, end);
注意这里要在类的最上面定义两个点,起始点和结束点
//定义一个起点private MKPlanNode start;//定义一个终点private MKPlanNode end;
这里要注意的有两个地方,第一个就是线路的优先顺序
在mkSearch.setDrivingPolicy() 这个方法中有多种类型可以供选择,百度地图提供的API中有如下选择对象-->官方文档地址
然后要注意的是 drivingSearch 方法中的参数要注意
最后:给大家说两句说说,其实我这写的只是皮毛中的皮毛,仅仅给那些跟我水平一样的人提供一些方便,相互的学习共同成长,还请那些大牛,大卡,们不要见笑
每天在睡觉的时候,希望大家明白,明天又是美好的一天哦......
这篇关于003 走上移动开发之安卓项目实战(百度地图:在地图范围内进行检索与驾车路线搜索)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!