百度地图开发( 基于新版本V2_1_1)— 覆盖物(2)_Poi搜索结果图层(PoiOverlay)
来源:互联网 发布:spf最短路径算法 编辑:程序博客网 时间:2024/05/18 00:13
继上一次讲到百度地图开发中的覆盖物,说到如何在地图上显示我的位置,现在,继续覆盖物的学习,这次是Poi搜索结果图层(PoiOverlay)。
Poi搜索结果图层(PoiOverlay)的学习相对复杂点,具体分为四步骤:
1、在activity中定义成员变量。核心代码如下:
//定义成员变量 // MKSearch 为 搜索服务. 用于位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索private MKSearch mkSearch = null;2、在oncreate 方法中实例化该成员变量:
// 实例化 mkSearchmkSearch = new MKSearch();// 注意,MKSearchListener只支持一个,以最后一次设置为准mkSearch.init(bMapManager, new MySearchListener());3 、进行搜索数据的获取。查询,代码如下:
// 范围检索 检索北京西站与北京北站为顶点所确定的距形区域内的KFC餐厅// 北京西站GeoPoint ptLB = new GeoPoint((int) (39.901375 * 1E6),(int) (116.329099 * 1E6));// 北京北站GeoPoint ptRT = new GeoPoint((int) (39.949404 * 1E6),(int) (116.360719 * 1E6));// poiSearchInbounds(String key, GeoPoint ptLB, GeoPoint ptRT)// 根据范围和检索词发起范围检索.// poiSearchInCity(String city, String key) 城市poi检索. // poiSearchNearBy(String key, GeoPoint pt, int radius) 。
// 根据中心点、半径与检索词发起周边检索.
mkSearch.poiSearchInbounds("KFC", ptLB, ptRT);4、进行结果的显示:
自定义MySearchListener实现MKSearchListener接口,通过不同的回调方法,获得搜索结果,代码如下:
public class MySearchListener implements MKSearchListener {/** * 返回地址信息搜索结果 */public void onGetAddrResult(MKAddrInfo arg0, int arg1) {}/** * 返回公交搜索结果 */public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {}/** * 返回驾乘路线搜索结果 */public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {// TODO Auto-generated method stub}/** * 返回poi详细信息搜索的结果 */public void onGetPoiDetailSearchResult(int arg0, int arg1) {}/** * 返回poi搜索结果 */public void onGetPoiResult(MKPoiResult res, int type, int error) {// ERROR_RESULT_NOT_FOUND 错误号:未找到搜索结果if ( error == MKEvent.ERROR_RESULT_NOT_FOUND){Toast.makeText(MyMapActivity.this, "抱歉,未找到结果",Toast.LENGTH_LONG).show();return ;}else if (error != 0 || res == null) {Toast.makeText(MyMapActivity.this, "搜索出错啦..", Toast.LENGTH_LONG).show();return;}// 将poi结果显示到地图上PoiOverlay poiOverlay = new PoiOverlay(MyMapActivity.this, mapView);poiOverlay.setData(res.getAllPoi());mapView.getOverlays().clear();mapView.getOverlays().add(poiOverlay);mapView.refresh();//当 epointType 为2 或者4 。poi 坐标为空for (MKPoiInfo infor : res.getAllPoi()) {if (infor.pt != null) {mapView.getController().animateTo(infor.pt);}}}/** * 返回联想词信息搜索结果 */public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {}/** * 返回公交搜索结果 */public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {}/** * 返回步行路线搜索结果 */public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {}}至此,就完成啦。。效果如下图:
- 百度地图开发( 基于新版本V2_1_1)— 覆盖物(2)_Poi搜索结果图层(PoiOverlay)
- 百度地图开发( 基于新版本V2_1_1)— 覆盖物(4)_自定义图层:ItemizedOverlay
- 百度地图开发( 基于新版本V2_1_1)— 覆盖物(3)_路线图层(RouteOverlay)
- 百度地图开发( 基于新版本V2_1_1)— 覆盖物(1)_我的位置图层(MyLocationOverlay)
- 百度地图开发( 基于新版本V2_1_1)— 覆盖物(5)—弹出窗口图层:PopupOverlay
- 百度地图开发( 基于新版本V2_1_1)—显示百度地图
- 百度地图的覆盖物自定义(三)--自定义搜索结果+标注+覆盖物
- 百度地图开发入门【不同图层及覆盖物】
- 百度地图开发之不同图层及覆盖物
- Android 百度地图(二)——地图切换、定位、添加覆盖物、搜索位置、连线
- Android百度公交开发(七)——百度地图API之城市POI搜索-获取所有结果
- (七)Android百度公交开发—百度地图API之城市POI搜索-获取所有结果
- 关于百度地图SDK v3.6.0以上版本找不到PoiOverlay类(开源代码)的解决方法.
- 关于百度地图SDK v3.6.0以上版本找不到PoiOverlay类(开源代码)的解决方法
- Android 百度地图开发教程(一) 地图使用入门及地图表面覆盖物使用
- 基于百度地图,绘制自定义覆盖物
- Android版本百度地图开发(五)——覆盖物
- Android版本百度地图开发(五)——覆盖物
- 淘宝API 邮费模板获取的常见错误解决方案
- 3阶以下贝塞尔曲线轨迹库和任意轨迹库
- 自己总结一下关联关系映射中的OneToMany,ManyToOne,单向,双向注意的事项!ps:例子
- 图解TCP的3次握手建立连接,4次握手释放连接
- myeclipse 中文乱码 解决
- 百度地图开发( 基于新版本V2_1_1)— 覆盖物(2)_Poi搜索结果图层(PoiOverlay)
- vimrc在windows下的配置
- 字符串的排列[算法]
- 每日学习总结:可访问性不一致问题、table边框单元格效果、sql修改数据库、表、字段名
- Java调试错误积累001
- ASP.NET----验证码模块
- Myeclipse10中struct2和Web.xml如何进行配置
- 黑马程序员---类加载器
- 【解决Windows XP不能切换输入法问题】