**
第一步:
复制OverlayManager和PoiOverlay文件到Activity中
导入BaiduLBS_Android.jar和armeabi文件在lib目录下
**
//需要导的包
private MapView mMapView = null;
private BaiduMap mbaiduMap;
LatLng center = new LatLng(49.92235, 116.380338);
int radius = 500;
private PoiSearch poiSearch;
在oncreate中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
Button bt = (Button) findViewById(R.id.bt);
// 获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
mbaiduMap = mMapView.getMap();
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher);
// 构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions().position(center).icon(
bitmap);
// 在地图上添加Marker,并显示
mbaiduMap.addOverlay(option);
}
/**
* 获取POI搜索结果,包括searchInCity,searchNearby,searchInBound返回的搜索结果
*
* @param result
*/
public void ss(View v) {
Log.e("poiSearch", "=====================");
poiSearch = PoiSearch.newInstance();
poiSearch
.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() {
public void onGetPoiResult(PoiResult result) {
Log.e("new", "=====================");
// 获取POI检索结果
if (result == null
|| result.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) {
return;
}
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
Log.e("result", "=====================");
mbaiduMap.clear();
PoiOverlay overlay = new MyPoiOverlay(mbaiduMap);
mbaiduMap.setOnMarkerClickListener(overlay);
overlay.setData(result);
overlay.addToMap();
overlay.zoomToSpan();
showNearbyArea(center, radius);
return;
}
}
public void onGetPoiDetailResult(PoiDetailResult result) {
// 获取Place详情页检索结果
}
@Override
public void onGetPoiIndoorResult(PoiIndoorResult arg0) {
// TODO Auto-generated method stub
}
});
poiSearch.searchInCity((new PoiCitySearchOption()).city("北京")
.keyword("美食").pageNum(10));
}
private class MyPoiOverlay extends PoiOverlay {
public MyPoiOverlay(BaiduMap baiduMap) {
super(baiduMap);
}
@Override
public boolean onPoiClick(int index) {
super.onPoiClick(index);
// PoiInfo poi = getPoiResult().getAllPoi().get(index);
// // if (poi.hasCaterDetails) {
// poiSearch.searchPoiDetail((new PoiDetailSearchOption())
// .poiUid(poi.uid));
// }
return true;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
/**
* 对周边检索的范围进行绘制
*
* @param center
* @param radius
*/
public void showNearbyArea(LatLng center, int radius) {
Log.e("showNearbyArea", "===================");
BitmapDescriptor centerBitmap = BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher);
MarkerOptions ooMarker = new MarkerOptions().position(center).icon(
centerBitmap);
mbaiduMap.addOverlay(ooMarker);
OverlayOptions ooCircle = new CircleOptions().fillColor(0xCCCCCC00)
.center(center).stroke(new Stroke(5, 0xFFFF00FF))
.radius(radius);
mbaiduMap.addOverlay(ooCircle);
}