1.新建项目

将地图API添加进classpath中:

2.在activity_main.xml中添加一个MapView,用来显示地图:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <!-- 添加显示地图的控件 -->    <com.baidu.mapapi.MapView        android:id="@+id/bmapView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true" /></LinearLayout>

3.修改AndroidManifest.xml文件,指定用户权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >    </uses-permission>    <uses-permission android:name="android.permission.INTERNET" >    </uses-permission>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >    </uses-permission>    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.READ_PHONE_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.CALL_PHONE" >    </uses-permission>    <supports-screens        android:anyDensity="true"        android:largeScreens="true"        android:normalScreens="false"        android:resizeable="true"        android:smallScreens="true" />

3.初始化地图引擎

        bMapManager = new BMapManager(MainActivity.this);        bMapManager.init(keyString, new MKGeneralListener() {            @Override            public void onGetPermissionState(int arg0) {                // TODO Auto-generated method stub            }            @Override            public void onGetNetworkState(int arg0) {                // TODO Auto-generated method stub                if (arg0 == 300) {                    Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1)                            .show();                }            }        });        initMapActivity(bMapManager);    //初始化地图引擎

4.取得MapView组件

mapView = (MapView) findViewById(R.id.bmapView);

5.实例化search对象并添加监听

mkSearch = new MKSearch();mkSearch.init(bMapManager, new MySearchListener());

监听类:

private class MySearchListener implements MKSearchListener {        @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 onGetPoiDetailSearchResult(int arg0, int arg1) {            // TODO Auto-generated method stub        }        @Override        public void onGetPoiResult(MKPoiResult result, int type, int isError) {            // TODO Auto-generated method stub            if(result == null){                return;            }            PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView);            poiOverlay.setData(result.getAllPoi());            mapView.getOverlays().add(poiOverlay);            mapView.invalidate();        }        @Override        public void onGetRGCShareUrlResult(String arg0, int arg1) {            // TODO Auto-generated method stub        }        @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        }    }

6.根据关键词、中心点、半径进行搜索。

// 关键词,中心点,范围半径mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)), 5000);

7.恢复、暂停、停止地图时地图引擎的操作

    @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();        }    }

完整代码:

package com.example.baiduhellopoioverlay;import android.os.Bundle;import android.view.Menu;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.MapView;import com.baidu.mapapi.PoiOverlay;public class MainActivity extends MapActivity {    private MapView mapView;    private BMapManager bMapManager;    private String keyString = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A";    private MKSearch mkSearch;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        bMapManager = new BMapManager(MainActivity.this);        bMapManager.init(keyString, new MKGeneralListener() {            @Override            public void onGetPermissionState(int arg0) {                // TODO Auto-generated method stub            }            @Override            public void onGetNetworkState(int arg0) {                // TODO Auto-generated method stub                if (arg0 == 300) {                    Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1)                            .show();                }            }        });        initMapActivity(bMapManager);    //初始化地图引擎        mapView = (MapView) findViewById(R.id.bmapView);        mkSearch = new MKSearch();        mkSearch.init(bMapManager, new MySearchListener());        // 关键词,中心点,范围半径        mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6),                (int) (116.404 * 1E6)), 5000);    }    private class MySearchListener implements MKSearchListener {        @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 onGetPoiDetailSearchResult(int arg0, int arg1) {            // TODO Auto-generated method stub        }        @Override        public void onGetPoiResult(MKPoiResult result, int type, int isError) {            // TODO Auto-generated method stub            if(result == null){                return;            }            PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView);            poiOverlay.setData(result.getAllPoi());            mapView.getOverlays().add(poiOverlay);            mapView.invalidate();        }        @Override        public void onGetRGCShareUrlResult(String arg0, int arg1) {            // TODO Auto-generated method stub        }        @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    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    protected boolean isRouteDisplayed() {        // TODO Auto-generated method stub        return false;    }}

运行结果:

更多相关文章

  1. android 随手记-画虚线
  2. Android(安卓)Map开发基础知识学习笔记
  3. Android(安卓)Map开发基础知识学习笔记
  4. Android(安卓)Map开发基础知识学习笔记
  5. Android(安卓)Map开发基础知识学习笔记
  6. Android(安卓)Map开发基础知识学习笔记
  7. Android的地图服务
  8. 百度地图SDK for Android【简介】
  9. Android下 使用百度地图sdk

随机推荐

  1. Android关于 'roundIcon' in package '的
  2. android socket编程实例
  3. Android(安卓)启动页过渡动画效果实现(二)
  4. Android中设置中文粗体的方法
  5. 编译用于Android的FFmpeg&x264
  6. Android如何进行数字签名与优化
  7. 【Android(安卓)】Prebuilt预编译
  8. Android控件拖动
  9. Android中遇到的简单工厂模式的几种实现
  10. RadioButton和CheckBox自定义按钮图片的