我的百度地图开发第二天(构建一个查询点,通过查询KFC)

来源:互联网 发布:淘宝企业店铺纳税问题 编辑:程序博客网 时间:2024/04/29 01:07

package com.android.mybaidu;

import android.os.Bundle;
import android.widget.Toast;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.PoiOverlay;

public class Main extends MapActivity {
 /** Called when the activity is first created. */

 // 添加百度地图的相关控件
 private MapView mapView;
 private BMapManager bMapManager;// 加载地图的引擎
 // 百度地图的key
 // 在百度地图上添加一些控件,比如是放大或者缩小的控件
 private MapController mapController;
 private String keyString="P56aGeQVKbcUexzEGRdHGG8j";
 private MKSearch mkSearch;//用于位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  mapView = (MapView) this.findViewById(R.id.bmapView);
  bMapManager = new BMapManager(Main.this);
  // 必须要加载key
  bMapManager.init(keyString, new MKGeneralListener() {

   @Override
   public void onGetPermissionState(int arg0) {
    // TODO Auto-generated method stub
    if (arg0 == 300) {
     Toast.makeText(Main.this, "输入的Key有错!请核实!!", 1).show();
    }
   }

   @Override
   public void onGetNetworkState(int arg0) {
    // TODO Auto-generated method stub

   }
  });
   /*initMapActivity(arg0)是MapActivity的一个方法,
         * MapActivity管理显示MapView中Activity 处理逻辑的基础类,
         * initMapActivity初始化这个类
        */
  this.initMapActivity(bMapManager);
  
         mkSearch=new MKSearch();
         mkSearch.init(bMapManager, new MySearchListener() );
    mapView.getController().setCenter(new GeoPoint((int) (32.574 * 1E6),
   (int) (116.785 * 1E6)));
         //第一个参数是查询的名称,第二个参数是构建一个GeoPoint点,第三个参数是查询的半径
         mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (32.574 * 1E6),
     (int) (116.785 * 1E6)), 5000);

 }
 public class MySearchListener implements MKSearchListener{
  public MySearchListener(){
   
  }

  @Override
  public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
   // TODO Auto-generated method stub
   if (arg0 == null) {
    return;
   }
   //构建的一个查询点  
   PoiOverlay poiOverlay=new PoiOverlay(Main.this, mapView);
   poiOverlay.setData(arg0.getAllPoi());//获得符合条件的点
   mapView.getOverlays().add(poiOverlay);
   mapView.invalidate();//刷新地图
   
  }

  @Override
  public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
   // TODO Auto-generated method stub
   
  }

  
 }

 @Override
 protected void onDestroy() {
  // TODO Auto-generated method stub
  super.onDestroy();
  if (bMapManager != null) {
   bMapManager.destroy();
   bMapManager = null;
  }
 }

 @Override
 protected void onResume() {
  // TODO Auto-generated method stub
  super.onResume();
  if (bMapManager != null) {
   bMapManager.start();
  }
 }

 @Override
 protected void onPause() {
  // TODO Auto-generated method stub
  super.onPause();
  if (bMapManager != null) {
   bMapManager.stop();
  }
 }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}

 

主要知识点:

                  (1)用于位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索:

                            private MKSearch mkSearch;

                             mkSearch=new MKSearch();

                   (2)加载MKSearchListener接口,该接口返回poi搜索,公交搜索,驾乘路线,步行路线结果:
                            mkSearch.init(bMapManager, new MKSearchListener(){。。。}; );

                   (3)第一个参数是查询的名称,第二个参数是构建一个GeoPoint点,第三个参数是查询的半径:
                            mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (32.574 * 1E6),  (int) (116.785 * 1E6)), 5000);

                            

 

0 0
原创粉丝点击