百度地图 Android SDK - 检索功能使用的简单示例

百度地图 SDK 不仅为广大开发者提供了炫酷的地图展示效果、丰富的覆盖物图层,更为广大开发者提供了多种 LBS 检索的能力。通过这些接口,开发者可以轻松的访问百度的 LBS 数据,丰富自己的移动端地图应用。

目前百度地图 SDK 为开发者提供的检索服务有:

POI 检索:可以检索百度 POI 数据信息;

线路规划:利用百度的引擎帮助开发者规划线路;

在线建议检索、短链接分享、地理编码等等....

本文将以一个很简单的 POI 城市内检索为例,像广大开发者介绍接口的使用。

第一步,选择并下载 SDK;

这个例子我们只使用检索功能,因此我们到百度 LBS 开放平台的 Android 的统一资源下载平台下载检索功能模块就可以了,具体地址如下:http://lbsyun.baidu.com/sdk/download

第二步,创建 Android 工程,并将下载好的 SDK 导入工程中;

导入完成后效果如下图所示:

第三步,设计应用程序的交互界面;

第四步,在 AndroidManifest 中添加所需权限和 SDK 开发所需要的 Key;

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<meta-data
	android:name="com.baidu.lbsapi.API_KEY"
	android:value="GBm9SbM00C7Cd6vFi2evzSgK" />

注意上面的 key 请开发者换成自己申请的 key,具体方法请参考之前的博客介绍。

第五步,编程;

分别定义三个变量,PoiSearch、PoiCitySearchOption、OnGetPoiSearchResultListener。从这三个名字大家也能看得出,这三个变量分别是检索对象、检索参数和检索结果的监听方法。

在执行 POI 检索之前,需要先初始化 PoiSearch 对象,方法如下:

poiSearch = PoiSearch.newInstance();

初始化完成之后,紧接着需要设置它的监听方法,注意 SDK 中所有的检索请求都是异步实现的,代码如下:

poiSearch.setOnGetPoiSearchResultListener(onGetPoiSearchResultListener);

准备工作完成后,我们在 Button 的点击响应中,添加真正的检索执行代码,如下所示:

button.setOnClickListener(new View.OnClickListener() {

	@Override
	public void onClick(View arg0) {
	// TODO Auto-generated method stub
		poiCitySearchOption = new PoiCitySearchOption()
			.city(city.getText().toString())
			.keyword(keyword.getText().toString());
		poiSearch.searchInCity(poiCitySearchOption);
	}
});

补充一下监听方法的实现,如下所示:

	OnGetPoiSearchResultListener onGetPoiSearchResultListener = new OnGetPoiSearchResultListener() {

		@Override
		public void onGetPoiResult(PoiResult poiResult) {
			// TODO Auto-generated method stub
			String poiname = poiResult.getAllPoi().get(0).name;
			String poiadd = poiResult.getAllPoi().get(0).address;
			String idString = poiResult.getAllPoi().get(0).uid;
			textView.setText(
					"第一条结果是:\n名称=["+
					poiname+
					"]\nID = ["+
					idString
					+ "] \n地址=["+
					poiadd+
					"]");
		}

		@Override
		public void onGetPoiDetailResult(PoiDetailResult arg0) {
			// TODO Auto-generated method stub

		}
	};

如上的监听方法是将结果中得第一条信息进行了展示,执行程序如下图效果:

到这,我们就实现了利用百度地图 Android SDK 的一个最简单的 POI 检索示例。更多功能欢迎大家登陆我们的官方网站进行查询,谢谢!

http://developer.baidu.com/map/index.php?title=androidsdk

百度 LBS 开放平台向广大开发者推出开发者众测计划,参与我们的研发测试,第一时间体验我们新产品的功能,提 BUG 还能获奖,是不是很爽呢?!~

详细信息请参考:http://bbs.lbsyun.baidu.com/viewthread.php?tid=15300&extra=page%3D1

时间: 2024-10-10 15:46:33

百度地图 Android SDK - 检索功能使用的简单示例的相关文章

百度地图 Android SDK - Hello Baidu Map

如下内容主要向广大开发者介绍如何利用百度地图Android SDK来构建一个最基本的地图应用! 第一步,创建Android工程,将百度地图Android SDK的开发包导入到工程相应位置: 在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示: 注:l

Android 关于百度地图Android SDK几处修正使用说明(非官方)

本篇主要是因为最近在学习使用百度地图,发现了一些问题,跟大伙分享一下. 1.根据android sdk开发指南中"Hello World"的例子,构建一个基础的地图页面,如果大家完全按照示例代码中所写的那样,是不会执行成功的,会有以下问题的错误提示"java.lang.RuntimeException: Unable to instantiate activity ComponentInfo" 这个问题出现的原因是 在第二步,配置Activity部分,android

百度地图 Android SDK - 标注(Marker)的基本使用

标注(Marker)是开发者最常使用的地图覆盖物志一,今天就来向大家介绍一些标注(Marker)的最基本使用方法! 实现目标: 1.构建基础地图页面: 2.在地图的中心点处添加 Marker: 3.实现 Marker 的点击事件响应: 4.实现 Marker 的添加和灵活删除: 为了实现以上目标,我们会分成以下若干步骤来进行. 第一步.创建工程,导入百度地图 Android SDK: 具体创建工程的方式(略).本示例主要是为了实现地图及相关的覆盖物功能,因此这里我只使用 SDK 开发资源下载平台

百度地图 Android SDK - 新的版本号(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 在版本号 2014 年 11 月 07 日本正式推出工作完成! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FsbG1lc2Vu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 在这个版本号中.我们主要为广大开发人员开放了百度城市热力图层,帮助开发人员构建形式更加丰富的地图应用! 那么这里可能

分享:百度地图Android SDK开发指南

最新的百度地图(v3.2)下载包中居然没有开发指南,自己整理了一下网页版的百度地图Android SDK开发指南,分享给和自己一样需要Demo的学生党.下载链接: http://pan.baidu.com/s/1jGqYF5c 密码: wpf9.

百度地图 Android SDK - 新版本(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 版本于 2014 年 11 月 07 日完成正式上线工作! 在这个版本中,我们主要为广大开发者开放了百度城市热力图层,帮助开发者构建形式更加丰富的地图应用! 那么这里可能一些细心的开发者就会有疑问了,曾经的 v3.1.0 版本貌似就有一个什么热力图,这两个之间是怎么回事,有什么区别呢?别急,听我慢慢道来: v3.1.0 版本所开放的是热力图的绘制能力,说白了就是你来给我们提供数据,我们来帮助您实现本地的一个热力图绘制,最主要的前提是由开发者传入位置

百度地图 Android SDK - 坐标转换方法

百度地图 Android SDK 或者 iOS SDK 或者各种各样的 API 工具产品,都使用的是百度自己经过加密的坐标体系. 众多开发者在使用过程中,位置点都是通过 GPS 或者其他途径获取的,所以与百度地图所使用的坐标系存在差异. 开发者在将这些空间位置信息运用到地图地图上得时候,需要进行响应的纠偏(坐标转换),Android SDK 为广大开发者早已开放了响应的坐标转换方法, 开发者只需要短短的几行代码就可以实现相应的坐标转换操作了. 具体方法如下: // 将google地图.soso地

百度地图 Android SDK - 个性化地图

什么是百度个性化地图Android SDK? 百度个性化地图Android SDK是一套基于Android 2.2及以上版本设备的应用程序接口,您可以通过该套接口实现基本的地图功能,并且可以定制地图样式,实现个性化地图. 该接口提供以下功能: 1.基本地图:提供地图(2D.3D)的展示和缩放.平移.旋转.改变视角等地图操作: 2.个性化地图:可以更改地图样式,让您的地图与众不同,实现个性化定制: 3.覆盖物:提供常见地图覆盖物(自定义标注.几何图形等),满足开发者的各种需求: 4.坐标映射:提供

利用百度地图Android sdk高仿微信发送位置功能

接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 (假设须要完整demo.请评论留下邮箱) (眼下源代码已经不发送,假设须要源代码.加qq316701116,不喜勿扰)    我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送功能中,无论用户怎样拖拽地图.总有个覆盖物固定了MapView中央,怎么实现?     事实上这非常easy实现.仅仅要MapView的布局文件里.将一个ImageView覆