Android开发-百度地图API_v4.1.1-AndroidStudio(五)检索功能
2016-11-23 10:13
429 查看
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53301514
在百度地图API中,检索功能文档,有很多功能,这边代码演示一下,POI兴趣点检索、POI公交信息检索
还有其他很多,比如行政区边界数据检索、线路规划、地理编码、在线建议查询、短串分享。
可以查看 http://lbsyun.baidu.com/index.php?title=androidsdk/guide/retrieval
我们看一下效果和代码:
MainActivity.java:
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53301514
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
在百度地图API中,检索功能文档,有很多功能,这边代码演示一下,POI兴趣点检索、POI公交信息检索
还有其他很多,比如行政区边界数据检索、线路规划、地理编码、在线建议查询、短串分享。
可以查看 http://lbsyun.baidu.com/index.php?title=androidsdk/guide/retrieval
我们看一下效果和代码:
MainActivity.java:
package com.demo1; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.search.busline.BusLineSearch; import com.baidu.mapapi.search.core.PoiInfo; import com.baidu.mapapi.search.core.SearchResult; import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener; import com.baidu.mapapi.search.poi.PoiCitySearchOption; import com.baidu.mapapi.search.poi.PoiDetailResult; import com.baidu.mapapi.search.poi.PoiIndoorResult; import com.baidu.mapapi.search.poi.PoiResult; import com.baidu.mapapi.search.poi.PoiSearch; import java.util.List; public class MainActivity extends AppCompatActivity { private MapView mMapView = null; private BaiduMap mBaiduMap; private PoiSearch mPoiSearch; private PoiSearch mPoiSearchBus; private String busLineId; private BusLineSearch mBusLineSearch; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 在使用SDK各组件之前初始化context信息,传入ApplicationContext // 注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); // 获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); // 普通地图 // POI兴趣点检索初始化 initPOI(); // POI公交信息检索初始化 initBus(); // 注册 SDK 广播监听者 IntentFilter iFilter = new IntentFilter(); iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK); iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR); iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR); mReceiver = new SDKReceiver(); registerReceiver(mReceiver, iFilter); } private void initBus() { // POI检索 mPoiSearchBus = PoiSearch.newInstance(); // 创建POI检索实例 // 创建POI检索监听者; OnGetPoiSearchResultListener poiListenerBus = new OnGetPoiSearchResultListener(){ @Override public void onGetPoiResult(PoiResult result) { if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) { return; } //遍历所有POI,找到类型为公交线路的POI for (PoiInfo poi : result.getAllPoi()) { if (poi.type == PoiInfo.POITYPE.BUS_LINE ||poi.type == PoiInfo.POITYPE.SUBWAY_LINE) { //说明该条POI为公交信息,获取该条POI的UID busLineId = poi.uid; System.out.println(poi.name+"--"+poi.uid+"--"+poi.city); Toast.makeText(MainActivity.this, poi.name+"--"+poi.uid+"--"+poi.city, Toast.LENGTH_SHORT).show(); break; } } } @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) { } }; // 设置POI检索监听者; mPoiSearchBus.setOnGetPoiSearchResultListener(poiListenerBus); } public void poiBus(View view){ // 发起检索请求;异步请求; // 以城市内检索为例,详细方法请参考POI检索部分的相关介绍 mPoiSearchBus.searchInCity((new PoiCitySearchOption()) .city("北京") .keyword("717")); // 释放POI检索实例; //mPoiSearchBus.destroy(); } private void initPOI() { // POI检索 mPoiSearch = PoiSearch.newInstance(); // 创建POI检索实例 // 创建POI检索监听者; OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){ public void onGetPoiResult(PoiResult result){ //获取POI检索结果 List<PoiInfo> allPoi = result.getAllPoi(); for (PoiInfo p : allPoi) { System.out.println(p.address+"--"+p.city+"--"+p.name); Toast.makeText(MainActivity.this, p.address+"--"+p.city+"--"+p.name, Toast.LENGTH_SHORT).show(); } } public void onGetPoiDetailResult(PoiDetailResult result){ //获取Place详情页检索结果 } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) { } }; // 设置POI检索监听者; mPoiSearch.setOnGetPoiSearchResultListener(poiListener); } public void poiClick(View view){ // 发起检索请求;异步请求; mPoiSearch.searchInCity((new PoiCitySearchOption()) .city("北京") .keyword("美食") .pageNum(10)); // 释放POI检索实例; //mPoiSearch.destroy(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.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(); } /** * 构造广播监听类,监听 SDK key 验证以及网络异常广播 */ public class SDKReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String s = intent.getAction(); TextView text = (TextView) findViewById(R.id.text_Info); text.setTextColor(Color.RED); if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) { text.setText("key 验证出错! 错误码 :" + intent.getIntExtra (SDKInitializer.SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE, 0) + " ; 请在 AndroidManifest.xml 文件中检查 key 设置"); } else if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) { text.setText("key 验证成功! 功能可以正常使用"); text.setTextColor(Color.BLACK); } else if (s.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) { text.setText("网络出错"); } } } private SDKReceiver mReceiver; }activity_main.java
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.demo1.MainActivity"> <TextView android:id="@+id/text_Info" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="16sp" > </TextView> <Button android:text="poi检索" android:onClick="poiClick" android:layout_below="@+id/text_Info" android:id="@+id/btn_poi" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:text="bus检索" android:onClick="poiBus" android:layout_below="@+id/btn_poi" android:id="@+id/btn_bus" android:layout_width="match_parent" android:layout_height="wrap_content" /> <com.baidu.mapapi.map.MapView android:layout_below="@+id/btn_bus" android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </RelativeLayout>
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53301514
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
相关文章推荐
- Android开发-百度地图API_v4.1.1-AndroidStudio(五)检索功能
- Android开发-百度地图API_v4.1.1-AndroidStudio(六)显示检索结果&定位&显示我的位置
- Android开发-百度地图API_v4.1.1-AndroidStudio(六)显示检索结果&定位&显示我的位置
- Android开发-百度地图API_v4.1.1-AndroidStudio(一)密钥申请
- Android开发-百度地图API_v4.1.1-AndroidStudio(三)HelloBaiduMap
- Android开发-百度地图API_v4.1.1-AndroidStudio(一)密钥申请
- Android开发-百度地图API_v4.1.1-AndroidStudio(二)环境配置
- Android开发-百度地图API_v4.1.1-AndroidStudio(七)鹰眼轨迹&纠偏
- Android开发-百度地图API_v4.1.1-AndroidStudio(四)基础地图
- Android开发-百度地图API_v4.1.1-AndroidStudio(三)HelloBaiduMap
- Android开发-百度地图API_v4.1.1-AndroidStudio(四)基础地图
- Android开发-百度地图API_v4.1.1-AndroidStudio(二)环境配置
- Android开发-百度地图API_v4.1.1-AndroidStudio(七)鹰眼轨迹&纠偏
- 分享Android开发自学笔记之AndroidStudio常用功能
- Android SDK>开发指南>检索功能
- Android开发自学笔记—1.1(番外)AndroidStudio常用功能介绍
- Android开发自学笔记—1.1(番外)AndroidStudio常用功能介绍
- 模仿android谷歌地图功能开发记录
- Android简明开发教程八:引路蜂二维图形绘制实例功能定义
- 模仿android谷歌地图功能开发记录