POI搜索有三种方式。依据范围和检索词发起范围检索poiSearchInbounds。城市poi检索poiSearchInCity,周边检索poiSearchNearBy。

下以周边检索为例介绍怎样进行检索并显示覆盖物PoiOverlay:

public int poiSearchNearBy(java.lang.String key, 

title=Android%E5%B9%B3%E5%8F%B0/%E7%B1%BB%E5%8F%82%E8%80%83/GeoPoint" title="Android平台/类參考/GeoPoint" style="color:rgb(38,121,186); text-decoration:none">GeoPoint pt,
int radius)

依据中心点、半径与检索词发起周边检索. 


异步函数,返回结果在MKSearchListener里的onGetPoiResult方法通知
參数:

key - 关键词
pt - 中心点地理坐标
radius - 半径。单位:米
返回:

成功返回0,否则返回-1

Demo: 检索天安门周边5000米之内的KFC餐厅


[java] view
plain
copy

  1. mMKSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)), 5000);




实现MySearchListener的onGetPoiResult,并展示检索结果:
[java] view
plain
copy

  1. public void onGetPoiResult(MKPoiResult result, int type, int iError) {
  2. if (result == null) {
  3. return;
  4. }
  5. PoiOverlay poioverlay = new PoiOverlay(MyMapActivity.this, mMapView);
  6. poioverlay.setData(result.getAllPoi());
  7. mMapView.getOverlays().add(poioverlay);
  8. }



详细实现:
[java] view
plain
copy

  1. package xiaosi.baiduMap;
  2. import android.os.Bundle;
  3. import com.baidu.mapapi.BMapManager;
  4. import com.baidu.mapapi.GeoPoint;
  5. import com.baidu.mapapi.MKAddrInfo;
  6. import com.baidu.mapapi.MKDrivingRouteResult;
  7. import com.baidu.mapapi.MKPoiResult;
  8. import com.baidu.mapapi.MKSearch;
  9. import com.baidu.mapapi.MKSearchListener;
  10. import com.baidu.mapapi.MKTransitRouteResult;
  11. import com.baidu.mapapi.MKWalkingRouteResult;
  12. import com.baidu.mapapi.MapActivity;
  13. import com.baidu.mapapi.MapController;
  14. import com.baidu.mapapi.MapView;
  15. import com.baidu.mapapi.PoiOverlay;
  16. public class BaiduMapActivity extends MapActivity
  17. {
  18. /** Called when the activity is first created. */
  19. private BMapManager mapManager = null;
  20. private String key = "1B79478DA01F7800AEA8602517A6D89B38151105";
  21. private MapView mapView = null;
  22. @Override
  23. public void onCreate(Bundle savedInstanceState)
  24. {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.main);
  27. mapManager = new BMapManager(getApplication());
  28. mapManager.init(key, null);
  29. super.initMapActivity(mapManager);
  30. mapView = (MapView) findViewById(R.id.mapsView);
  31. mapView.setBuiltInZoomControls(true); // 设置启用内置的缩放控件
  32. MapController mapController = mapView.getController(); // 得到mMapView的控制权,能够用它控制和驱动平移和缩放
  33. mapController.setZoom(12); // 设置地图zoom级别
  34. MKSearch mKSearch = new MKSearch();
  35. mKSearch.init(mapManager, new MySearchListener());// 注意。MKSearchListener仅仅支持一个。以最后一次设置为准
  36. mKSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6),
  37. (int) (116.404 * 1E6)), 5000);
  38. }
  39. public class MySearchListener implements MKSearchListener
  40. {
  41. public void onGetAddrResult(MKAddrInfo arg0, int arg1)
  42. {}
  43. public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1)
  44. {}
  45. public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2)
  46. {
  47. if (arg0 == null) {
  48. return;
  49. }
  50. PoiOverlay poioverlay = new PoiOverlay(BaiduMapActivity.this, mapView);
  51. poioverlay.setData(arg0.getAllPoi());
  52. mapView.getOverlays().add(poioverlay);
  53. }
  54. public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1)
  55. {}
  56. public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1)
  57. {}
  58. }
  59. @Override
  60. protected boolean isRouteDisplayed()
  61. {
  62. return false;
  63. }
  64. @Override
  65. protected void onDestroy()
  66. {
  67. if (mapManager != null)
  68. {
  69. mapManager.destroy();
  70. mapManager = null;
  71. }
  72. super.onDestroy();
  73. }
  74. @Override
  75. protected void onPause()
  76. {
  77. if (mapManager != null)
  78. {
  79. mapManager.stop();
  80. }
  81. super.onPause();
  82. }
  83. @Override
  84. protected void onResume()
  85. {
  86. if (mapManager != null)
  87. {
  88. mapManager.start();
  89. }
  90. super.onResume();
  91. }
  92. }

android POI搜索,附近搜索,周边搜索定位介绍的更多相关文章

  1. Android必知必会-带列表的地图POI周边搜索

    如果移动端访问不佳,请尝试–> Github版 2016-08-22 更新 注意:在 Activity 代码中的onPoiSearched(PoiResult result, int rCode ...

  2. 【微信公众平台开发】百度周边搜索接口php封装

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl2YW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  3. ZT android -- 蓝牙 bluetooth (三)搜索蓝牙

    android -- 蓝牙 bluetooth (三)搜索蓝牙 分类: Android的原生应用分析 2013-05-31 22:03 2192人阅读 评论(8) 收藏 举报 bluetooth蓝牙s ...

  4. 用google map实现周边搜索功能

    项目要实现根据经纬度获取附近的建筑,由于项目在海外运营,谷歌地图首当其冲. 首先说明的是,该功能需要在服务端实现,也就是安卓的SDK不适用. api文档地址: https://developers.g ...

  5. 高德地图搜索功能以及清除搜索结果maker

    第一次写文章,写得不好各位看官见谅~ (pσ_σ)P首先这是一个vue里面的项目,高德地图api是直接CDN进来的,所以使用了global来调用,默认已经初始化了一个地图,为了实现一个输入框搜索功能和 ...

  6. CMake库搜索函数居然不搜索LD_LIBRARY_PATH

    摘要: 本文通过编译后运行找不到库文件的问题引入,首先分析了find_package(JNI)的工作流程,而后针对cmake不搜索LD_LIBRARY_PATH的问题,提出了一种通用的解决办法. 本文 ...

  7. [转载]SharePoint 2013搜索学习笔记之搜索构架简单概述

    Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上, ...

  8. 点击搜索取消UISearchDisplayController的搜索状态

    一般,我们用到UISearchDisplayController的时候,都是须要对一个数据源进行刷选,在UISearchDisplayController自带的tableView中展示出来,然后点击退 ...

  9. lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3

    前言: 前面几章已经很详细的讲解了如何创建索引器对索引进行增删查(没有更新操作).如何管理索引目录以及如何使用分词器,上一章讲解了如何生成索引字段和创建索引文档,并把创建的索引文档保存到索引目录,到这 ...

随机推荐

  1. Vue 几种常见开局方式

    vue的开局方式五花八门,这里列几种常见的. 我们先建立一个app.vue来当入口文件,即所有页面都会以这个组件为模板. <template> <div id="app&q ...

  2. MessageBox的使用

    一    函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口 ...

  3. Chrome安装助手踩坑

    [前言] 最近用之前的方法配置hosts,想浏览下载国外网站的数据和插件,突然发现几乎所有的方法都无效了...... 本文介绍下下载谷歌助手,通过助手访问国外网站 [主体] (1)搜索谷歌助手,点击下 ...

  4. SQL使用exists时的多种写法

    from test; go from test; go 下面这种效率明显高不少.

  5. PHP15 Smarty模板

    学习目标 Smarty基本概念 Smarty安装和配置 Smarty模板设计 Smarty流程控制 Smarty基本概念 一种模板引擎,在系统中进行预处理和过滤数据.是主流的PHP模板引擎,此外PHP ...

  6. 点击按钮打开一个新的窗口 关键词(Intent, setData , putExtra , startActivity |Bundle)

    M3U8_Video_demo 项目 //------------------ 创建发送private void playVideo(String source, String title) { if ...

  7. 洛谷——P1640 [SCOI2010]连续攻击游戏

    P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...

  8. layui使用小记(持续更新)

    关于Select等Form表单元素,在使用的时候部分特性会失效 如select自带的Search功能: 其实在使用Form表单元素的时候,你如果需要layui自带的一些功能(搜索,验证等),请用< ...

  9. Windows Server定时执行bat

    大家应该知道是在window服务器下使用bat批处理脚本文件,如果是Linux操作系统则是使用xshell脚本文件.由于自己是在做项目的时候对于文件系统中的日志进行定期删除对bat和xshell进行简 ...

  10. json_decode 解析带BOM头文件错误

    //取前三个字符 并转化为ASCII 判断是否为BOM文件 $charset[1] = substr($result, 0, 1); $charset[2] = substr($result, 1, ...