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. integer to roman leetcode c++实现

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  2. QT+lambda 表达式

    #include "mainwidget.h" #include <QPushButton> #include <QDebug> MainWidget::M ...

  3. 两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。 有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比, 请编程序找出三队赛手的名单。

    题目:两个乒乓球队进行比赛,各出三人. 甲队为a,b,c三人,乙队为x,y,z三人. 已抽签决定比赛名单. 有人向队员打听比赛的名单. a说他不和x比,c说他不和x,z比, 请编程序找出三队赛手的名单 ...

  4. VIO第二讲_allen方差工具

    1,首先,安装ceres依赖项,见高博14讲116页,然后下载编译安装ceres: git clone https://github.com/ceres-solver/ceres-solver cd ...

  5. TWaver3D直线、曲线、曲面的绘制

    插播一则广告(长期有效) TWaver需要在武汉招JavaScript工程师若干 要求:对前端技术(JavasScript.HTML.CSS),对可视化技术(Canvas.WebGL)有浓厚的兴趣 基 ...

  6. 前端开发中的 meta 整理

    meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言, ...

  7. focus,focusin,blur,focusout区别

    focus与focusin 1.共同点:当 <div> 元素或其任意子元素获得焦点时执行事件 2.区别:focus不支持冒泡,而focusin支持冒泡: blur与focusout 1.共 ...

  8. 为ubuntu(18.04)系统启用root用户

    1.使用passwd指令为root用户设置密码 2.编辑文件/usr/share/lightdm/lightdm.conf.d/50-ubuntu.confecho 'greeter-show-man ...

  9. AF_NETLINK

    读procd时,hotplug相关. 从网上资料来看,大概和硬件输入有关? 资料:http://www.cnblogs.com/sammei/p/4119659.html

  10. HTML5结构

    1.显示编排内容区域块(明确使用section等元素创建文档结构,在每个区域块中使用标题元素) 2.隐示编排内容区域块(不明确使用section等元素,而是根据网页需求来将各级的元素创建出来) 3.标 ...