百度地图的周边搜索
来源:互联网 发布:守望先锋选项性能数据 编辑:程序博客网 时间:2024/05/01 01:09
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.search.MKAddrInfo;
import com.baidu.mapapi.search.MKBusLineResult;
import com.baidu.mapapi.search.MKDrivingRouteResult;
import com.baidu.mapapi.search.MKPoiInfo;
import com.baidu.mapapi.search.MKPoiResult;
import com.baidu.mapapi.search.MKSearch;
import com.baidu.mapapi.search.MKSearchListener;
import com.baidu.mapapi.search.MKSuggestionResult;
import com.baidu.mapapi.search.MKTransitRouteResult;
import com.baidu.mapapi.search.MKWalkingRouteResult;
public class PoiSearchDemo extends Activity {
static MapView mMapView = null;
private MapController mMapController = null;
public MKMapViewListener mMapListener = null;
MKSearch mSearch = null; // 搜索模块,也可去掉地图模块独立使用
public static String mStrSuggestions[] = {};
Button mBtnSearch = null; // 搜索按钮
Button mBtnDetailSearch = null; // 详细搜搜按钮
Button mSuggestionSearch = null; //suggestion搜索
Button nextData = null;
public int load_Index;
ListView mSuggestionList = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_poisearch);
DemoApplication app = (DemoApplication)this.getApplication();
if (app.mBMapManager == null) {
app.mBMapManager = new BMapManager(this);
app.mBMapManager.init(DemoApplication.strKey,new DemoApplication.MyGeneralListener());
}
mMapView = (MapView)findViewById(R.id.bmapView);
mMapController = mMapView.getController();
initMapView();
mMapListener = new MKMapViewListener() {
@Override
public void onMapMoveFinish() {
}
@Override
public void onClickMapPoi(MapPoi mapPoiInfo) {
String title = "";
if (mapPoiInfo != null){
title = mapPoiInfo.strText;
Toast.makeText(PoiSearchDemo.this,title,Toast.LENGTH_SHORT).show();
}
}
};
mMapView.regMapViewListener(DemoApplication.getInstance().mBMapManager, mMapListener);
mMapView.getController().enableClick(true);
mMapView.getController().setZoom(12);
// 初始化搜索模块,注册事件监听
mSearch = new MKSearch();
mSearch.init(app.mBMapManager, new MKSearchListener(){
@Override
public void onGetPoiDetailSearchResult(int type, int error) {
if (error != 0) {
Toast.makeText(PoiSearchDemo.this, "抱歉,未找到结果", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(PoiSearchDemo.this, "成功,查看详情页面", Toast.LENGTH_SHORT).show();
}
}
//主要是以下代码
public void onGetPoiResult(MKPoiResult res, int type, int error) {
// 错误号可参考MKEvent中的定义
if (error != 0 || res == null) {
Toast.makeText(PoiSearchDemo.this, "抱歉,未找到结果", Toast.LENGTH_LONG).show();
return;
}
// 将地图移动到第一个POI中心点
if (res.getCurrentNumPois() > 0) {
// 将poi结果显示到地图上
MyPoiOverlay poiOverlay = new MyPoiOverlay(PoiSearchDemo.this, mMapView, mSearch);
poiOverlay.setData(res.getAllPoi());
mMapView.getOverlays().clear();
mMapView.getOverlays().add(poiOverlay);
mMapView.refresh();
//当ePoiType为2(公交线路)或4(地铁线路)时, poi坐标为空
for( MKPoiInfo info : res.getAllPoi() ){
if ( info.pt != null ){
mMapView.getController().animateTo(info.pt);
break;
}
}
} else if (res.getCityListNum() > 0) {
String strInfo = "在";
for (int i = 0; i < res.getCityListNum(); i++) {
strInfo += res.getCityListInfo(i).city;
strInfo += ",";
}
strInfo += "找到结果";
Toast.makeText(PoiSearchDemo.this, strInfo, Toast.LENGTH_LONG).show();
}
}
public void onGetDrivingRouteResult(MKDrivingRouteResult res,
int error) {
}
public void onGetTransitRouteResult(MKTransitRouteResult res,
int error) {
}
public void onGetWalkingRouteResult(MKWalkingRouteResult res,
int error) {
}
public void onGetAddrResult(MKAddrInfo res, int error) {
}
public void onGetBusDetailResult(MKBusLineResult result, int iError) {
}
//主要代码
public void onGetSuggestionResult(MKSuggestionResult res, int arg1) {
if (arg1 != 0 || res == null) {
Toast.makeText(PoiSearchDemo.this, "抱歉,未找到结果", Toast.LENGTH_LONG).show();
return;
}
int nSize = res.getSuggestionNum();
mStrSuggestions = new String[nSize];
for (int i = 0; i < nSize; i++) {
mStrSuggestions[i] = res.getSuggestion(i).city + res.getSuggestion(i).key;
}
}
});
// 设定搜索按钮的响应
mBtnSearch = (Button)findViewById(R.id.search);
OnClickListener clickListener = new OnClickListener(){
public void onClick(View v) {
SearchButtonProcess(v);
}
};
mBtnSearch.setOnClickListener(clickListener);
}
@Override
protected void onPause() {
mMapView.onPause();
super.onPause();
}
@Override
protected void onResume() {
mMapView.onResume();
super.onResume();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mMapView.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mMapView.onRestoreInstanceState(savedInstanceState);
}
@Override
protected void onDestroy() {
mMapView.destroy();
super.onDestroy();
}
private void initMapView() {
mMapView.setLongClickable(true);
mMapView.getController().setZoom(14);
mMapView.getController().enableClick(true);
mMapView.displayZoomControls(true);
}
void SearchButtonProcess(View v) {
if (mBtnSearch.equals(v)) {
EditText editCity = (EditText)findViewById(R.id.city);
EditText editSearchKey = (EditText)findViewById(R.id.searchkey);
mSearch.poiSearchInCity(editCity.getText().toString(),
editSearchKey.getText().toString());
}
}
}
- 百度地图的周边搜索
- 百度地图-实现POI的搜索(搜索周边)
- Android 百度地图-实现POI的搜索(搜索周边)
- Android 百度地图-实现POI的搜索(搜索周边)
- Android:百度地图-实现POI的搜索(搜索周边)
- Android 百度地图-实现POI的搜索(搜索周边)
- 基于百度地图API的微信周边搜索
- 百度地图之周边兴趣点搜索
- Android 百度地图--定位、周边搜索
- 用百度地图进行搜索周边的建筑,医院,餐厅,学校等。
- Android百度地图——搜索服务之周边检索
- Android百度地图API 之 定位周边搜索POI
- android 百度地图SDK 3.7.0 周边雷达-Radar 周边搜索-PoiSearch
- android 百度地图SDK 3.7.0 周边雷达-Radar 周边搜索-PoiSearch
- Android 百度地图之全局搜索周边搜索全国搜索城市路线规划(升级版)
- 百度地图之调用URL api接口实现周边搜索及计算球面两点间的距离
- 百度地图获取周边位置
- 【技巧】百度地图搜周边
- ARCGIS ENGINE + C#画点、线、面
- fedora下配置hadoop(一)
- jquery 中给combobox赋初始值
- FreeBSD查看硬件信息
- 如何在Windows下开发Python
- 百度地图的周边搜索
- 搜狗笔试题:07更新数组每个元素为其他每个元素的积
- springMVC项目中实现Protocol Buffers对象自动转换
- apache 2.4.x 403问题
- window-linux 之间ftp文件互传
- Android: API Levels
- MySQL中文乱码解决
- SVM的理论与实践-ML
- 关于栈的理解