Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法
白羽 2018-12-19 来源 :网络 阅读 1033 评论 0

摘要:本文将带你了解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频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程