BaiduMap SDK-点标记Marker

目录

1. Marker标记

1.1 Marker常用属性

1.2 Marker添加和移除

1.2.1 Marker添加

1.2.2 Marker删除

1.3 Marker事件

1.3.1 OnMarkerClickListener

1.3.2 OnMarkerDragListener

1.4 Marker点聚合


1. Marker标记

1.1 Marker常用属性

名称

说明

icon

设置图标

animateType

动画类型

alpha

透明度

position

位置坐标

perspective

是否开启近大远小效果

draggable

是否可拖拽

flat

是否平贴地图

anchor

锚点比例

rotate

旋转角度

title

设置标题

visible

是否可见

extraInfo

额外信息

isFixed 是否跟随地图移动
period(int period) 设置图片刷新间隔时间,值越小动画越快
zIndex 设置Marker的层次,值越大越李平面近,在上层;

1.2 Marker添加和移除

1.2.1 Marker添加

       MarkerOptions markerOptionsA = new MarkerOptions();
        //层次
        markerOptionsA.zIndex(9);
        //是否允许拖拽
        markerOptionsA.draggable(true);
        
        //设置位置
        markerOptionsA.position(latLng3);
        //设置icon图标
        markerOptionsA.icon(bitmapDescriptorA);
        //添加动画
        markerOptionsA.animateType(MarkerOptions.MarkerAnimateType.drop);
        //构建Marker对象
        markerC = (Marker) baiduMap.addOverlay(markerOptionsA);

        //设置位置
        markerOptionsA.position(latLng4);
        ArrayList<BitmapDescriptor> iconList = new ArrayList<BitmapDescriptor>();
        iconList.add(bitmapDescriptorA);
        iconList.add(bitmapDescriptorB);
        iconList.add(bitmapDescriptorC);
        iconList.add(bitmapDescriptorD);
        //设置icon图标List,图标进行循环切换
        markerOptionsA.icons(iconList);
        //切换间隔时间
        markerOptionsA.period(5);
        markerOptionsA.animateType(MarkerOptions.MarkerAnimateType.drop);
        markerD = (Marker) baiduMap.addOverlay(markerOptionsA);

1.2.2 Marker删除

单个删除:Marker对象remove();

markerA.remove();

删除所有Marker:

baiduMap.clear();

1.3 Marker事件

Marker事件都是通过BaiduMap设置Listener;

1.3.1 OnMarkerClickListener

boolean onMarkerClick(Marker marker)

地图 Marker 覆盖物点击事件监听函数,开发者注意根据参数Marker来判断响应某个对象的点击事件

参数:

marker - 被点击的 marker

baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(final Marker marker) {
              
           latLng = marker.getPosition();
           //判断是那个Marker的点击事件
           if (marker == markerA) {
                  
           } else if (marker == markerB) {
                   
           } 

            return true;
        }
 });

1.3.2 OnMarkerDragListener

1. void onMarkerDrag(Marker marker)

Marker 被拖拽的过程中。

参数:

marker - 被拖拽的 Marker 对象

2. void onMarkerDragEnd(Marker marker) -拖曳结束

3.void onMarkerDragStart(Marker marker)-开始拖曳

 baiduMap.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener() {
        @Override
        public void onMarkerDrag(Marker marker) {
           //拖曳过程事件
           //判断是那个Marker的点击事件
           if (marker == markerA) {

           } else if (marker == markerB) {

           }
      }

       @Override
       public void onMarkerDragEnd(Marker marker) {
          //拖曳结束
       }

       @Override
       public void onMarkerDragStart(Marker marker) {
          //拖曳开始
       }
   });

1.4 Marker点聚合

Marker点聚合可以参考:BaiduMap SDK-Marker点聚合

猜你喜欢

转载自blog.csdn.net/niuba123456/article/details/81140007