目前百度地图SDK所集成的检索服务包括:POI检索、公交信息查询、线路规划、地理编码、在线建议查询、短串分享。

本篇博客将先介绍POI检索和在线建议查询(在地图地位功能基础上实现的,还不知道定位的童靴,请参考Android

百度地图 SDK v3.3.0 (二)--- 地图定位和图层展示)

百度地图SDK提供三种类型的POI检索:周边检索、区域检索和城市内检索。下面将以城市内检索为例,向大家介绍如何使用检索服务。

在介绍检索服务之前,想上一张要实现的效果图:

好了!现在我们上代码,来实现上面的功能(代码中都做了相应的注解)

1.创建POI和在线建议查询实例

/**

* 初始化搜索模块,注册搜索事件监听

*/

private void initPOIListener() {

//POI检索实例

mPoiSearch = PoiSearch.newInstance();

//创建POI检索监听者

mPoiSearch.setOnGetPoiSearchResultListener(this);

//联想词检索实例

mSuggestionSearch = SuggestionSearch.newInstance();

//联想词检索监听者

mSuggestionSearch.setOnGetSuggestionResultListener(this);

}

2.创建POI检索监听者,并做相关的事件处理

@Override

public void onGetSuggestionResult(SuggestionResult res) {

if (res == null || res.getAllSuggestions() == null) {

return;

}

sugAdapter.clear();

for (SuggestionResult.SuggestionInfo info : res.getAllSuggestions()) {

if (info.key != null)

sugAdapter.add(info.key);

}

sugAdapter.notifyDataSetChanged();

}

@Override

public void onGetPoiDetailResult(PoiDetailResult result) {

// 未找到了结果

if (result.error != SearchResult.ERRORNO.NO_ERROR) {

Toast.makeText(MainActivity.this, "抱歉,未找到结果", Toast.LENGTH_SHORT)

.show();

} else {

Toast.makeText(MainActivity.this,

result.getName() + ": " + result.getAddress(),

Toast.LENGTH_SHORT).show();

}

}

@Override

public void onGetPoiResult(PoiResult result) {

// 未找到结果

if (result == null

|| result.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) {

Toast.makeText(MainActivity.this, "未找到结果", Toast.LENGTH_LONG)

.show();

return;

}

// 结果没有异常,找到了结果

if (result.error == SearchResult.ERRORNO.NO_ERROR) {

mBaiduMap.clear();

PoiOverlay overlay = new MyPoiOverlay(mBaiduMap);

mBaiduMap.setOnMarkerClickListener(overlay);

overlay.setData(result);

overlay.addToMap();

overlay.zoomToSpan();

return;

}

// 当输入关键字在本市没有找到,但在其他城市找到时,返回包含该关键字信息的城市列表

if (result.error == SearchResult.ERRORNO.AMBIGUOUS_KEYWORD) {

String strInfo = "在";

for (CityInfo cityInfo : result.getSuggestCityList()) {

strInfo += cityInfo.city;

strInfo += ",";

}

strInfo += "找到结果";

Toast.makeText(MainActivity.this, strInfo, Toast.LENGTH_LONG)

.show();

}

}

/**

* 提供了在地图上标识搜索结果的方法

*

* @author TanZuAi

*

*/

private class MyPoiOverlay extends PoiOverlay {

public MyPoiOverlay(BaiduMap baiduMap) {

super(baiduMap);

}

@Override

public boolean onPoiClick(int index) {

super.onPoiClick(index);

// 获取poi覆盖物的详细信息

PoiInfo poi = getPoiResult().getAllPoi().get(index);

// uid是POI检索中获取的POI ID信息

mPoiSearch.searchPoiDetail((new PoiDetailSearchOption())

.poiUid(poi.uid));

return true;

}

}

3.设置按钮的相关事件。

/**

* 影响搜索按钮点击事件

*

* @param v

*/

public void searchButtonProcess(View v) {

EditText editCity = (EditText) findViewById(R.id.city);// 输入的城市

EditText editSearchKey = (EditText) findViewById(R.id.searchkey);// 输入的关键词

// 发起检索请求

mPoiSearch.searchInCity((new PoiCitySearchOption())

.city(editCity.getText().toString())// 根据城市

.keyword(editSearchKey.getText().toString())// 根据关键字

.pageNum(load_Index));// 查询的页数

}

/**

* 每添加一页进行查询

*

* @param v

*/

public void goToNextPage(View v) {

load_Index++;

searchButtonProcess(null);

}          4.为了节省电量和资源,得设置搜索的相关生命周期

@Override

protected void onDestroy() {

mPoiSearch.destroy();

mSuggestionSearch.destroy();

// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理

mMapView.onDestroy();

super.onDestroy();

}

@Override

protected void onResume() {

super.onResume();

// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理

mMapView.onResume();

}

@Override

protected void onPause() {

super.onPause();

// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理

mMapView.onPause();

}

好了!代码实现已经介绍完毕!相信大家都看的懂!有什么不懂的或者建议,可以在下面留言!

下面是本篇博客的源码下载地址:

原文:http://blog.csdn.net/tanzuai/article/details/43835431

android 百度地图 在线建议查询,Android 百度地图 SDK v3_3_0 (五) ---POI搜索和在线建议查询功能...相关推荐

  1. elasticsearch系列五:搜索详解(查询建议介绍、Suggester 介绍)

    一.查询建议介绍 1. 查询建议是什么? 查询建议,为用户提供良好的使用体验.主要包括: 拼写检查: 自动建议查询词(自动补全) 拼写检查如图: 自动建议查询词(自动补全): 2. ES中查询建议的A ...

  2. android mapview 自定义地图标注,关于Android集成高德地图的那些事儿...地图标注Marker 、Poi 搜索...

    上一篇博客介绍了地图的显示,不要太简单了, 我们要实现的效果当然不仅仅是显示地图这么废了, 现在地图是有了 , 怎么在地图上添加一个标注呢? 添加一个圆形?又或者是我想在地图上添加个自定义的View, ...

  3. 前端系列——vue2+高德地图web端开发(poi搜索两种方式)

    前端系列--vue2+高德地图web端开发(poi搜索) 前言 基础 什么是poi搜索 1. 输入提示结合poi搜索 官方代码 步骤 1.进行plugins插件注册 2.data中编写placeSea ...

  4. 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

    原文地址为: [高德地图API]从零开始学高德JS API(四)搜索服务--POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址 ...

  5. [android] 百度地图开发 (二).定位城市位置和城市POI搜索

    一. 百度地图城市定位和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了如何申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述如何定位城市位置.定位 ...

  6. 百度步行导航加poi搜索android,Android Studio百度地图路线规划以及POI搜索功能的实现...

    在Eclipse上开发百度地图的教程比较多,最近用的比较多的是Android Studio平台开发,本文主要是学习如何在Android Studio上进行百度地图的开发. 1.准备工作 这第一步网上说 ...

  7. 【Android】3.0 第3章 百度地图及其应用--预备知识

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技 ...

  8. android百度地图定位文字表述,Android studio 百度地图开发(8)地图已标记POI点和搜索POI点的获取和利用...

    一.简要描述 百度地图的POI点可以分有两种:地图中已经标记的点和通过关键词搜索得到的POI点.对于这两种POI点,百度封装成了不同的类和接口来实现监听,下面简单讲一点. 二.地图中已标记POI点 首 ...

  9. 百度android地图开发文档,简介-百度地图开发文档

    目录1 JavaScript API功能介绍 2 面向的读者 3 坐标转换 4 版本说明及申请API ak 5 获取JavaScript API服务方法 6 开发移动平台上的地图应用 7 Https ...

最新文章

  1. Spring Cloud第二篇:服务消费者RestTemplate+Ribbon
  2. [2019.2.24]BZOJ4591 [Shoi2015]超能粒子炮·改
  3. OpenCASCADE:读取和写入 STEP
  4. 众唱点歌机会显示无法连接服务器,目前众多厂商唱多的服务器附加存储缺点分析...
  5. java kafka搭建,Apache Kafka 安装步骤
  6. Simplex 单纯形算法的python实现
  7. 幸福在《精通移动App测试实战 技术、工具和案例》
  8. QR code 二维码基础入门教程
  9. java正方形个圆形面积_java计算图形面积(圆形,正方形, 长方形).pptx
  10. 关于python装饰器的总结
  11. C语言图书出入库管理系统
  12. C# 通过窗口句柄为指定窗口发送指令(user32.dll,mshtml)
  13. matlab计数重叠细胞,医学图像处理案例(三)——用分水岭算法分割重叠细胞
  14. MRAM学习笔记——3.SOT-MTJ SPICE model解析
  15. 该如何选择适合的服务器
  16. 苹果手机投影_手机和投影同时用流量能否投屏
  17. GF3卫星影像数据处理-PolSAR+ENVI
  18. 使用QQ邮箱接收邮件报警设置步骤
  19. Pytorch 统计模型参数量 param.numel()
  20. Niushop 单商户V5.1商城系统拼团返利插件-裂变红包插件-代客下单插件及商品采集插件安装流程

热门文章

  1. Linux 下的网络配置
  2. P1219 八皇后(N皇后,烧脑标记剪枝,DFS)
  3. Nacos 开源、自研、商业化三位一体战略解读
  4. ARMS企业级场景被集成场景介绍
  5. 2020年阿里云边缘计算和CDN的关键词
  6. 10年后,阿里给千万开源人写了一封信
  7. linux6.5虛擬機镜像,CentOS 7.2 自动安装光盘实验全过程记录
  8. 唱歌如何保持高位置_歌唱中如何找到声音的高位置,内容详解
  9. 微云存照片会变模糊吗_QQ相册里的照片,为什么放一段时间就会变模糊?今天可算知道了...
  10. 分成收益破5000后,我决定将付费专栏开源了