摘要:本文将带你了解Android应用开发android 百度地图自定义圆,更改默认图标等常用方法,希望本文对大家学Android有所帮助。
本文将带你了解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();
//创建PoiOverlay
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);
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号