您的位置:首页 > 移动开发 > Android开发

android 百度地图自定义圆,更改默认图标等常用方法

2017-05-11 17:26 537 查看
总结了一下百度地图常用的方法(前提是集成百度地图环境成功):

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();
//创建PoiOverlay
c955
PoiOverlay 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,用于在地图上添加Marker
OverlayOptions 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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐