频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
android 百度地图自定义圆,更改默认图标等常用方法
2018-06-20 02:16:20         来源:FDGFGFDGFD的博客  
收藏   我要投稿

总结了一下百度地图常用的方法(前提是集成百度地图环境成功):
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 Studio 通过Shadowsocks+proxifier快速下载gradle
下一篇:Android Studio 的常用快捷键
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站

龙8国际娱乐pt老虎机