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. JAVA Native Interface (JNI)

    1.  Introduction At times, it is necessary to use native (non-Java) codes (e.g., C/C++) to overcome ...

  2. Spring boot 项目打成war包并在idea中运行

    1. 修改pom文件原来是jar改成<packaging>war</packaging> 2. 在pom文件中添加移除内置tomcat并且添加添加servlet-api的依赖. ...

  3. merge dict key

    #!/usr/local/python # -*- coding:utf-8 -*-user_dict = {'python': 23, 'Python': 51, '机器':10, 'PYTHON' ...

  4. Ubuntu中python链接本地数据库

    由于python链接数据库需要下载DB API模块:例如你需要访问Mysql数据,你需要MySQL数据库模块. DB-API是一个规范. 以便为不同的底层数据库系统和数据库接口程序提供一致的访问接口. ...

  5. tornado框架基础11-tornado异步

    01 同步和异步 生活中常常会遇到在超市排队买东西的情况,排在你前面的人没有结算完成,你就无法付账,在计算机中也有类似的情形,一个程序在执行之前,需要等待其他的程序执行完成,大家还能举出其他的例子吗? ...

  6. Django之学员管理三

    Django之学员管理三 web框架的本质: 本质是客户端和服务端的交互.用socket实现. socket客户端(浏览器) 2.发送ip和端口,http://www.baidu.com:80/ind ...

  7. Activiti数据表

    --1:资源库流程规则表SELECT * FROM JEESITE.act_re_deployment --部署信息表SELECT * FROM JEESITE.act_re_model --流程设计 ...

  8. 开门人和关门人(结构体+sort)

    每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人.    Input 测试输入的第一行给出记录的总天数N ( > ...

  9. LeetCode01--寻找两个有序数组的中位数

    ''' 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nu ...

  10. Java学习之理解多态

    Java 多态 多态是同一个行为具有多个不同表现形式或形态的能力.多态就是同一个接口,使用不同的实例而执行不同操作,多态性是对象多种表现形式的体现.例如:可以把人分为男人和女人,男人有做力气活的能力, ...