安卓百度地图显示范围 (android百度地图定位开发)

如图所示,这个界面的效果图是:

android地图,android百度离线地图

其实就是搜索框输入要搜索的内容,然后返回相应的位置信息,然后作为marker标记在地图上就好了,下面详细介绍实现的代码:

搜索的实现代码:

private void search() {
 if (TextUtils.isEmpty(serchEt.getText())){
 ToastUtils.showToast(context,"请输入要搜索的地址");
 return;
 }
// mPoiSearch.searchInCity((new PoiCitySearchOption()).city(city).keyword(serchEt.getText().toString()).pageCapacity(50));
 mPoiSearch.searchNearby((new PoiNearbySearchOption()).location(position).keyword(serchEt.getText().toString()).radius(20000).pageCapacity(50));
 }
 
 OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){
 
 public void onGetPoiResult(PoiResult result){
 //获取POI检索结果
 poiList = result.getAllPoi();
 if (poiList==null){
 ToastUtils.showToast("未找到相关地址");
 return;
 }
 Log.e(TAG," result size==>" +poiList.size());
 if (poiList!=null && poiList.size()>0) {
 //TODO
 addMark();
 } else {
 ToastUtils.showToast("没有搜索到有用的结果");
 }
 }
 
 @Override
 public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
 
 }
 
 @Override
 public void onGetPoiDetailResult(PoiDetailSearchResult poiDetailSearchResult) {
 
 }
 
 @Override
 public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
 
 }
 };

实现在地图页画点的方法如下:
private void addMark() {
 for (int i = 0; i < poiList.size(); i++) {
 //定义Maker坐标点
 LatLng point = poiList.get(i).getLocation();
//构建Marker图标
 BitmapDescriptor bitmap = BitmapDescriptorFactory
 .fromResource(R.mipmap.map_shop_ic);
//构建MarkerOption,用于在地图上添加Marker
 OverlayOptions option = new MarkerOptions()
 .position(point)
 .icon(bitmap);
//在地图上添加Marker,并显示
 mBaiduMap.addOverlay(option);
 
 //在地图上添加该文字对象并显示
 OverlayOptions textOption = new TextOptions()
 .bgColor(0xFFFFFFFF)
 .fontSize(28)
 .fontColor(0xFF828282)
 .text(poiList.get(i).getName())
 .rotate(0)
 .position(point);
 mBaiduMap.addOverlay(textOption);
 
 }
 }