android 百度地图自定义圆,更改默认图标等常用方法
程序员文章站
2022-10-16 16:48:27
总结了一下百度地图常用的方法(前提是集成百度地图环境成功):
1:定位到已经经纬度,只需要改变latlng的参数即可。有两种方法:
方法1:
//定义maker坐标点
latlng poi...
总结了一下百度地图常用的方法(前提是集成百度地图环境成功):
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);