1.新建项目

将地图API添加进classpath中:

Android百度地图开发(三)范围搜索

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;    }}

运行结果:

Android百度地图开发(三)范围搜索

更多相关文章

  1. Android的地图服务
  2. 百度地图SDK for Android【简介】
  3. Android下 使用百度地图sdk
  4. android沉浸状态栏实现、地图多线路规划、Retrofit+RxJava+Jsoup
  5. Android引路蜂地图开发示例:基本知识
  6. ArcGIS for Android地图控件的5大常见操作
  7. android google地图定位开发,且可以自由移动位置重新获取定位,地址
  8. android 谷歌地图开发

随机推荐

  1. android 网络请求方式 例子
  2. Android Studio安装使用图文教程
  3. Android(安卓)gallery实现选中放大的效果
  4. Android 读取doc文件
  5. 【Arcgis android】 离线编辑实现及一些
  6. Android:TextSwitcher、imageSwitcher
  7. Android一些网站介绍
  8. Android中,把XML文件转换成Object对象的方
  9. android ndk编译getevent
  10. Android(安卓)MediaCodec踩坑笔记