(6)在地图上画东西
//定义Maker坐标点LatLng point = new LatLng(39.963175, 116.400244);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.qiu);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option =new MarkerOptions().position(point).icon(bitmap);
//在地图上添加Marker,并显示
mBaiduMap.addOverlay(option);
默认是没有动画效果的,我们可以设置动画效果在new MarkerOptions()的时候
.animateType(MarkerOptions.MarkerAnimateType.drop) 图标从天上掉下来(很傻逼的效果)
.animateType(MarkerOptions.MarkerAnimateType.grow)从底下上来(还算正常)
.animateType(MarkerOptions.MarkerAnimateType.grow)从底下上去又下来(还算正常)
我们上面这个marker是一个图标,如果需要实现复杂的布局,需要使用
View view=View.inflate(MainActivity.this,R.layout.marker,null);
TextView textView=view.findViewById(R.id.title);
textView.setText("这是"+i);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromView(view);
设置拖拽
设置marker的时候可以给他设置
draggable(boolean draggable)
设置 marker 是否允许拖拽,默认不可拖拽
如果我们设置为true,那么这个marker就是可以拖拽的了
批量添加和删除
private ListoverlayOptions=new ArrayList<>();
mBaiduMap.addOverlays(overlayOptions); 通过集合批量添加
//清除地图上的所有覆盖物mBaiduMap.clear();
设置覆盖物的点击事件
mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
//marker被点击时回调的方法 //若响应点击事件,返回true,否则返回false //默认返回false
@Override public boolean onMarkerClick(Marker marker) {
return false;
}
});