定义

POI(Point of Interest),中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。

百度地图SDK提供三种类型的POI检索:周边检索、区域检索和城市内检索。

在毕业设计中我主要用到的是城市内搜索。

城市内POI搜索

百度地图SDK搜索主要通过初始化MKSearch类,同时监听对象MKSearchListener类来实现搜索服务.在该类中有很多方法实现不同功能,其中onGetAddrResult()方法可以根据经纬度搜索地址信息,而需要实现的POI兴趣点搜索是通过onGetPoiResult()实现的。

创建POI检索实例

private PoiSearch mPoiSearch;//创建POI模块
mPoiSearch = PoiSearch.newInstance();//实例化

创建POI检索监听者

OnGetPoiSearchResultListener poilistener=new OnGetPoiSearchResultListener() {@Overridepublic void onGetPoiResult(PoiResult poiResult) {if (poiResult == null|| poiResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) {// 没有找到检索结果Toast.makeText(SearchStartActivity.this, "未找到结果",Toast.LENGTH_LONG).show();return;}if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) {// 检索结果正常返回placeList.clear();totalPage = poiResult.getTotalPageNum();// 获取总分页数List<PoiInfo> allPoi = poiResult.getAllPoi();for (int i = 0; i < 10; i++) {Place place = null;if(allPoi.get(i).type==PoiInfo.POITYPE.BUS_STATION){place=new Place(allPoi.get(i).address,R.drawable.ic_directions_bus_grey_500_24dp,allPoi.get(i).name);}else{if(allPoi.get(i).type==PoiInfo.POITYPE.SUBWAY_STATION){place=new Place(allPoi.get(i).address,R.drawable.ic_directions_subway_grey_500_24dp,allPoi.get(i).name);}else{place=new Place(allPoi.get(i).address,R.drawable.ic_place_grey_500_24dp,allPoi.get(i).name);}}placeList.add(place);}placeAdapter=new PlaceAdapter(SearchStartActivity.this,R.layout.place_item,placeList);list_start.setAdapter(placeAdapter);}}@Overridepublic void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {}@Overridepublic void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {}};

onGetPoiResult()获取POI检索结果,onGetPoiDetailResult()获取POI检索详细结果,这里用到的是onGetPoiResult()方法,并对获取到的PoiResult进行判断,如果为null,返回"未找到结果",若PoiResult即检索结果正常返回的话,一次搜索所得到的POI数据有时候可能有成千上万个,百度地图SDK对一次性返回的搜索结果进行了限制即一次性最多只能返回50条搜索结果,默认情况下一次性返回10条搜索结果。

选取10个,分别获取名字allPoi.get(i).name,地址allPoi.get(i).address,同时根据获取的POI类型(0:普通点,1:公交站,2:公交线路,3:地铁站,4:地铁线路)判断是否为公交站或地铁站或普通点,显示不同的图标。

将每一条POI搜索结果的这些信息赋值为place变量,同时存储在placeList中。place是之前自定义的变量(包括nameaddress图标属性),placeList是自定义的place类型的链表,用于储存place变量。这是获取用于展示listview的数据。

设置POI检索监听者

mPoiSearch.setOnGetPoiSearchResultListener(poilistener);

将上一步创建好的POI检索监听者配置到POI检索实例中。

发起检索请求

mPoiSearch.searchInCity((new PoiCitySearchOption()).city("北京")//定位的城市为搜索city.keyword(start.getText().toString())//关键词.pageNum(0));

主要用是searchInCity()方法,参数为搜索策略即PoiCitySearchOption,即根据策略在城市中搜索。PoiCitySearchOption中主要设置了搜索城市,关键词,以及默认返回的页码。

释放POI检索实例

mPoiSearch.destroy();

在活动的onDestroy()销毁mPoiSearch实例。

百度地图——poi搜索相关推荐

  1. java安卓百度地图查找便利店_Android 百度地图POI搜索功能实例代码

    在没介绍正文之前先给大家说下poi是什么意思. 由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思.今天下班之前,又看到了POI这 ...

  2. 最新百度地图—POI搜索功能讲解

    这几天都在学习百度地图的事例Demo,后续都会有其它功能的讲解: 对了  我们这里的最新只是代指现在哦!百度地图更新的很快的,最好还是看百度api最权威. 由于上一篇已经讲解过注册文件,这里我就不写那 ...

  3. 百度地图POI数据获取

    转载自:https://blog.csdn.net/baidu_26646129/article/details/80464447 本文主要介绍百度地图POI数据获取:从百度地图得到POI数据,以js ...

  4. 【具体实现过程】百度地图POI区域的边界经纬度坐标数据采集

    最近有个项目需要拿到百度地图中XXX市中所有学校的边界坐标.经过一下午的努力,终于成功拿到了坐标,对坐标数据还原和验证.特此记录一下具体实现过程和爬取思路. 前言:什么是POI? Point of i ...

  5. 百度地图POI数据采集方案以及开发环境搭建

    #获取百度地图POI数据一(详解百度返回的POI数据) http://lbsyun.baidu.com/index.php?title=webapi数据量标准可以参看 http://lbsyun.ba ...

  6. android百度地图单点定位_Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡...

    一.问题描述 上一次我们使用百度地图实现基本的定位功能,接下来我们继续实现搜索和定位,并使用LocationOverlay绘制定位位置,同时展示如何使用自定义图标绘制并点击时弹出泡泡 如图所示: 二. ...

  7. HTML5接入百度地图并搜索定位

    首先我们得去百度那里注册一下,拥有自己的Appkey,连接:http://lbsyun.baidu.com/ 也可以使用别人的,当然最好还是自己去注册比较好. 第二步,在你自己的网页中引入: 下面直接 ...

  8. ios百度地图地址搜索功能-在线建议查询

    最近使用到了百度地图,总结一下,话不多说直接上代码: 使用的是searchBar+在线建议查询 一.准备工作 导入头文件#import <BaiduMapAPI_Search/BMKSearch ...

  9. vue中调用百度地图实现搜索等功能

    vue中调用百度地图实现搜索等功能 在最近做电商项目时用户订单等物流信息想做的更加详细点所以加入了地图这个小功能,不是很难只是在一个未知的领域可能有点迷茫 现在也是体会到了,学新的东西还是得看官方文档 ...

最新文章

  1. SQL Server-聚焦深入理解动态SQL查询(三十二)
  2. Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
  3. 主流微服务注册中心浅析和对比
  4. kotlin获取属性_Kotlin程序| 属性获取器和设置器方法的示例
  5. NetAdvangate Infragisticss 控件在工程移动到别的机器上,引用失效问题
  6. Java高并发编程详解系列-线程异常处理
  7. mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】...
  8. k3服务器端的虚拟,k3服务器 客户端配置
  9. SLAM——绘制高精度地图的研究笔记
  10. 11-标志寄存器+adc/sbb+cmp+条件转移指令
  11. adb连接 红米5手机
  12. 水电站计算机监控作用,计算机监控系统在水电站中的应用
  13. ROS2前置基础教程 | 小鱼教你用g++编译ROS2节点
  14. 虚拟机超线程性能分析深入浅出
  15. 零极限:创造健康、平静与财富的四句话
  16. 团队管理的四大挑战——留人篇
  17. 开源GPU显存虚拟化项目,你的2080Ti还能救一下
  18. 桌面虚拟化云技术将支撑数字化医院
  19. Uwsgi+Nginx+Django部署
  20. garch dcc用matlab,MRS DCC GARCH 模型的MATLAB 程序修改

热门文章

  1. 客观认识植物乳杆菌 (L. plantarum) 及其健康益处
  2. 使用doc4j生成word文档
  3. 21世纪20年代的ConvNet——ConvNeXt
  4. Mac版几何画板正式上线
  5. thinkphp5的消息队列详细教程
  6. LR的极大似然以及非线性
  7. html5 移动端 下拉菜单,react实现移动端下拉菜单的示例代码
  8. ShareLatex+Overflow:PDF Rendering Error Something went wrong while rendering this PDF问题解决
  9. 一个简单漂亮的网址导航HTML5源码
  10. CAD模型转为点云模型/三维点云转为灰度图