基于指定文本的百度地图poi城市检索的使用(思路最重要)
(转载请注明出处哦)具体的百度地图权限和apikey配置以及基础地图的配置不叙述,百度地图定位可以看这个链接的http://blog.csdn.net/heweigzf/article/details/51084358,先来看一波搜索需要的基本布局layout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<AutoCompleteTextView
android:id= "@+id/autosearchresult"
android:background= "@null"
android:hint= "@string/please_input_addr"
android:layout_width= "match_parent"
android:layout_height= "@dimen/y30"
android:completionThreshold= "2"
android:background= "@drawable/edittext_shap"
android:singleLine= "true" />
<ListView
android:id= "@+id/poimsglist"
android:divider= "@color/grey"
android:dividerHeight= "1px"
android:layout_width= "match_parent"
android:layout_height= "match_parent" />
|
AutoCompleteTextView可以换成EditTextView,都是可以的,既然是城市poi检索,就会有需要的城市名,可以是定位得到的也可以是传值过来的,这里我就以Intent传值的形式了,先初始化城市检索核心类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/**
* 城市内搜索
*/
private void citySearch( int page,String keyword, int pageCapacity) {
Intent intent=getIntent();
if (intent!= null ){
String city=intent.getStringExtra( "city" );
if (city!= null ){
mPoiSearch=PoiSearch.newInstance();
mPoiSearch.setOnGetPoiSearchResultListener( this ); // 监听检索结果回调
// 设置检索参数
PoiCitySearchOption citySearchOption = new PoiCitySearchOption();
citySearchOption.city(city); // 城市
citySearchOption.keyword(keyword); // 关键字
citySearchOption.pageCapacity(pageCapacity); // 默认每页10条
citySearchOption.pageNum(page); // 分页编号
// 发起检索请求
mPoiSearch.searchInCity(citySearchOption);
}
}
}
|
接下来就是运用以上的方法了,可以明显的看出来我们是通过输入框来自动检索,需要的给AutoCompleteTextView设置输入监听
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
autosearchresult.addTextChangedListener( this );
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
// 输入完成后自动进行检索调用以上citySearch方法
@Override
public void afterTextChanged(Editable s) {
String searchdialog=s.toString();
if (searchdialog.length()> 1 ){
citySearch( 0 , searchdialog, 20 );
}
}
|
检索成功后,以下为OnGetPoiSearchResultListener回调的检索结果,getAllPoi()包含所有的检索结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
private ArrayList<String> addrs= new ArrayList<String>();
private ArrayList<String> names= new ArrayList<String>();
private ArrayList<LatLng> mlLatLngs= new ArrayList<LatLng>();
@Override
public void onGetPoiDetailResult(PoiDetailResult arg0) {
//获取Place详情页检索结果
}
@Override
public void onGetPoiResult(PoiResult arg0) {
//获取POI检索结果
if (arg0.error!=SearchResult.ERRORNO.NO_ERROR){
//BaseApp.getInstance().showToast("检索fail");
} else {
if (addrs!= null ){
addrs.clear();
}
if (mlLatLngs!= null ){
mlLatLngs.clear();
}
if (names!= null ){
names.clear();
}
if (arg0.getAllPoi()!= null &&arg0.getAllPoi().size()> 0 ){
List<PoiInfo> mPoiInfos=arg0.getAllPoi();
for ( int i = 0 ; i < mPoiInfos.size(); i++) {
names.add(mPoiInfos.get(i).name);
addrs.add(mPoiInfos.get(i).address);
mlLatLngs.add(mPoiInfos.get(i).location);
//对需要的信息设置适配器,如果想在其他界面用,可以自己创建回调接口
mSearchListAdapter= new SearchListAdapter(addrs, names, BaseApp.getInstance());
poiresultlist.setAdapter(mSearchListAdapter);
}
}
}
}
|
最后很重要的一步,要记得销毁poisearch对象,避免可能会报空指针异常
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@Override
public void onBackPressed() {
super .onBackPressed();
if (mPoiSearch!= null ){
mPoiSearch.destroy();
}
}
@Override
public void onDestroy() {
super .onDestroy();
if (mPoiSearch!= null ){
mPoiSearch.destroy();
}
}
|
基于指定文本的百度地图poi城市检索的使用(思路最重要)相关推荐
- 百度地图POI周边检索/自定义覆盖物
鉴于百度地图不计其数的poi兴趣点 很多app在开发的时候都会选择调用百度地图资源 //主界面Activity package com.zhuang.search;import java.util.A ...
- java安卓百度地图查找便利店_Android 百度地图POI搜索功能实例代码
在没介绍正文之前先给大家说下poi是什么意思. 由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思.今天下班之前,又看到了POI这 ...
- 百度地图POI数据采集方案以及开发环境搭建
#获取百度地图POI数据一(详解百度返回的POI数据) http://lbsyun.baidu.com/index.php?title=webapi数据量标准可以参看 http://lbsyun.ba ...
- 百度地图POI数据获取
转载自:https://blog.csdn.net/baidu_26646129/article/details/80464447 本文主要介绍百度地图POI数据获取:从百度地图得到POI数据,以js ...
- 2018全国百度地图poi数据
百度地图POI数据获取及后续处理的过程.POI数据获取及后续处理的过程主要包含了两个大的步骤,即 POI数据获取:从百度地图得到POI数据,以json格式保存: 数据的EXCEL导入:将json格式保 ...
- 利用百度地图进行城市功能区域划分
记录: 使用百度地图api进行各类兴趣点的划分 将研究区域利用arcgismap进行网格的划分和渔网经纬度范围的导出 将网格的范围与兴趣点坐标进行匹配与计算. 利用所获得的区域的兴趣点的频率进行方格区 ...
- ios 百度地图指定区域_iOS百度地图简单使用详解
百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰富的LBS能力 . 今天主要 ...
- 百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制11。
1.POI爬取方法说明 1.1AK申请 登录百度账号,在百度地图开发者平台的API控制台申请一个服务端的ak,主要用到的是Place API.检校方式可设置成IP白名单,IP直接设置成了0.0.0.0 ...
- 最新百度地图—POI搜索功能讲解
这几天都在学习百度地图的事例Demo,后续都会有其它功能的讲解: 对了 我们这里的最新只是代指现在哦!百度地图更新的很快的,最好还是看百度api最权威. 由于上一篇已经讲解过注册文件,这里我就不写那 ...
最新文章
- WR:微生物污染源解析中宿主特异性标记物在中国的表现特征
- mysql基础命令学习笔记
- 微信小程序服务器开小差了,微信小程序wx.request请求封装
- vue 中的el表达式_Vue中vue.filter()的使用方法介绍(过滤)
- leetcode 	222 	Count Complete Tree Nodes
- 利用python进行数据分析论文_利用Python进行数据分析之pandas的高级用法
- 分布式ID生成器的解决方案总结
- 监督学习 | ID3 C4.5 决策树原理
- Zend Studio 打开时提示 Failed to create the Java Virtual Machine
- Java代码优化技巧
- bat中的start
- SpringMVC之安全性(三)Twitter登入
- fastjson对Date的处理
- JavaJDBC异常记录:关于sql上能够正常执行的sql语句,在java中执行了但是返回结果不一致问题
- 自我鉴定300字大专计算机应用,职高自我鉴定300字(共8篇) .docx
- Linux内核崩溃转存,Ubuntu 12.04 配置内核崩溃自动重启及转存
- 对混淆矩阵、F1-Score
- 《野蛮生长》--冯仑
- JavaScript中节点获取,节点的属性,如何操作节点
- 采埃孚ZF EDI DESADV需求实现
热门文章
- ccs船级社认证费用多少_亚马逊UL507认证是什么?办理费用是多少?
- 计算机有哪两种绘图,能被计算机接受的数字图像有哪两种?它们分别由什么构成?...
- python 批量创建线程_【Python】批量创建线程
- 130塔式服务器系统,PowerEdge T130塔式服务器怎么样
- java web windows_Java Web服务器部署指南(windows版)
- python卡尔曼滤波跟踪_使用卡尔曼滤波器以圆周运动跟踪机器人
- 西门子dcs系统组态手册下载_西门子PLC,PCS7系统介绍
- 深度学习tensorflow变量op
- java 面试题三十三 子类父类方法执行顺序的问题
- 一次短信验证码攻击的应急响应