本文将带你了解Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法,希望本文对大家学Android有所帮助。
总结了一下百度地图常用的方法(前提是集成百度地图环境成功):
1:定位到已经经纬度,只需要改变LatLng的参数即可。有两种方法:
方法1:
//定义Maker坐标点 LatLng point = new LatLng(39.963175, 116.400244);//构建Marker图标 BitmapDescriptor bitmap = BitmapDescriptorFactory .fromResource(R.mipmap.ic_launcher);//构建MarkerOption,用于在地图上添加Marker OverlayOptions option = new MarkerOptions() .position(point) .icon(bitmap);//在地图上添加Marker,并显示 baiduMap.getMap().addOverlay(option);
方法2:
MyLocationData locData = new MyLocationData.Builder() // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(result.getLocation().latitude) .longitude(result.getLocation().longitude).build();// 设置定位数据baiduMap.setMyLocationData(locData);
2:根据关键词key检索附近建筑(默认返回10条数据)
//经纬度搜索poiSearch.searchNearby(new PoiNearbySearchOption().keyword("生").radius(5000).location(new LatLng(39.963175, 116.400244)));//城市搜索 poiSearch.searchInCity(new PoiCitySearchOption().city("杭州").keyword("东方通信科技园").pageCapacity(1));
poiSearch.setOnGetPoiSearchResultListener(this);
@Override public void onGetPoiResult(PoiResult poiResult) { if (poiResult == null || poiResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) {return; } if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) {//附近搜索baiduMap.getMap().clear();//创建PoiOverlayPoiOverlay overlay = new MyPoiOverlay(baiduMap.getMap());//设置overlay可以处理标注点击事件baiduMap.getMap().setOnMarkerClickListener(overlay);//设置PoiOverlay数据overlay.setData(poiResult);//添加PoiOverlay到地图中overlay.addToMap();overlay.zoomToSpan(); return; } }
3:地图放大设置zoom:
/*** 设置地图放大的倍数*/ mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(18).build()));
4:
更改默认图标有两种方法:
方法1
/*** 更改定位默认图标MyLocationConfiguration 第二个参数是是否显示方向信息*/ MyLocationConfiguration.LocationMode mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL; BitmapDescriptor mCurrentMarker = BitmapDescriptorFactory .fromResource(R.drawable.icon_map_gcoding); mBaiduMap.setMyLocationConfiguration(new MyLocationConfiguration(mCurrentMode, false, mCurrentMarker));
方法2:
//定义Maker坐标点//构建Marker图标BitmapDescriptor bitmap = BitmapDescriptorFactory .fromResource(R.drawable.icon_map_gcoding);//构建MarkerOption,用于在地图上添加MarkerOverlayOptions options = new MarkerOptions() .position(ll) .icon(bitmap);//在地图上添加Marker,并显示mBaiduMap.addOverlay(options);
5:将定位到的地方移到地图中央
/** * 将定位到的地方移到地图中央 */LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(ll);mBaiduMap.animateMapStatus(msu);
6:在地图中央的地方画圆:
/ 添加圆OverlayOptions ooCircle = new CircleOptions().fillColor(0x2201A4F1) .center(ll).stroke(new Stroke(5, 0xAA01A4F1)) .radius(200);mBaiduMap.addOverlay(ooCircle);
7:当地图放大时,不让默认的圆出现(不设置accuracy即可),
// 构造定位数据 accuracy设置精确度MyLocationData locData = new MyLocationData.Builder() // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build();// 设置定位数据mBaiduMap.setMyLocationData(locData);
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!