目录
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点聚合