百度安卓地图学习(二)

来源:互联网 发布:营销软件网站源码 编辑:程序博客网 时间:2024/05/16 06:37

看完了http://blog.csdn.net/woshishuoshuoa/article/details/9853985后便学会了简单定位,那么如何进行搜索呢,在之前的项目上新建一个activity,代码如下:

package com.diecolor;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.map.MKEvent;import com.baidu.mapapi.map.MapController;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.PoiOverlay;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.MKShareUrlResult;import com.baidu.mapapi.search.MKSuggestionResult;import com.baidu.mapapi.search.MKTransitRouteResult;import com.baidu.mapapi.search.MKWalkingRouteResult;import com.baidu.platform.comapi.basestruct.GeoPoint;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class LocationActivity extends Activity{BMapManager mBMapMan = null;  MapView mMapView = null;Button button;EditText editText;MKSearch mkSearch=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stub//======================================================初始化地图Activity、使用Key========================================super.onCreate(savedInstanceState);mBMapMan=new BMapManager(getApplication());  mBMapMan.init("4b605b48b3062e4687d0ada2ecd65a8e", null);    //注意:请在试用setContentView前初始化BMapManager对象,否则会报错  setContentView(R.layout.location_main);mMapView=(MapView)findViewById(R.id.locationmap_bmapsView);  mMapView.setBuiltInZoomControls(true);  //设置启用内置的缩放控件MapController mapController=mMapView.getController();//得到mMapView控制权,可以用它控制盒驱动平移和缩放GeoPoint point=new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)mapController.setCenter(point);//设置地图中心点mapController.setZoom(12);//设置地图zoom级别 //===========================================================初始化地图完成================================================//初始化 查询mkSearch=new MKSearch();mkSearch.init(mBMapMan, new MySearchListener());//注意,MKSearchListener只支持一个,以最后一次设置为准      editText=(EditText) findViewById(R.id.edit_locationmap);button=(Button) findViewById(R.id.btn1_locationmap);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmkSearch.poiSearchInCity("南京", editText.getText().toString());}});}/* * 通过初始化MKSearch类,注册搜索结果的监听对象MKSearchListener, * 实现异步搜索服务。首先自定义MySearchListener实现MKSearchListener接口, * 通过不同的回调方法,获得搜索结果 */public class MySearchListener implements MKSearchListener{@Overridepublic void onGetAddrResult(MKAddrInfo arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetPoiDetailSearchResult(int arg0, int arg1) {// TODO Auto-generated method stub}//实现MySearchListener的onGetPoiResult,并展示检索结果:@Overridepublic void onGetPoiResult(MKPoiResult res, int type, int error) {// TODO Auto-generated method stub// 错误号可参考MKEvent中的定义  if ( error == MKEvent.ERROR_RESULT_NOT_FOUND){    Toast.makeText(LocationActivity.this, "抱歉,未找到结果",Toast.LENGTH_LONG).show();    return ;   }   else if (error != 0 || res == null) {   Toast.makeText(LocationActivity.this, "搜索出错啦..", Toast.LENGTH_LONG).show();   return; }// 将poi结果显示到地图上  PoiOverlay poiOverlay = new PoiOverlay(LocationActivity.this, mMapView);  poiOverlay.setData(res.getAllPoi());  //把查询结果 放置到层中mMapView.getOverlays().clear();  //清空以前查询的结果mMapView.getOverlays().add(poiOverlay); //添加搜索结果的层 mMapView.refresh();  //刷新//当ePoiType为2(公交线路)或4(地铁线路)时, poi坐标为空  for (MKPoiInfo mk : res.getAllPoi()) {if (mk.pt!=null) {mMapView.getController().animateTo(mk.pt);break;}}}@Overridepublic void onGetShareUrlResult(MKShareUrlResult arg0, int arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {// TODO Auto-generated method stub}}//===================================================重写以下方法,管理API============================================@Override  protected void onDestroy(){          mMapView.destroy();          if(mBMapMan!=null){                  mBMapMan.destroy();                  mBMapMan=null;          }          super.onDestroy();  }  @Override  protected void onPause(){          mMapView.onPause();          if(mBMapMan!=null){                 mBMapMan.stop();          }          super.onPause();  }  @Override  protected void onResume(){          mMapView.onResume();          if(mBMapMan!=null){                  mBMapMan.start();          }         super.onResume();   }  }

效果图:



喜欢安卓的亲们可以接着看看http://blog.csdn.net/woshishuoshuoa/article/details/9866327哦~~~

原创粉丝点击