?其实就是在惦记取消的时候删除所有标记,再遍历一遍重新画出来
int img 是R.id.ic_map
double v1 v2 是经纬度,顺序你自己看吧
boolean tf 是checkbox的选中状态,可能有同学用不到,另外再改就行
private ArrayList<LatLng> latLngs = new ArrayList<>();
//标记地图的方法
private void MapMarker(double v1, double v2,int img,Boolean tf) {
LatLng latLng = new LatLng(v1, v2);
if(tf){
MarkerOptions markerOption = new MarkerOptions();
markerOption.position(latLng);
aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));//标记点居中显示
markerOption.draggable(true);//设置Marker可拖动
markerOption.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), img)));
// 将Marker设置为贴地显示,可以双指下拉地图查看效果
markerOption.setFlat(true);//设置marker平贴地图效果
Marker marker = aMap.addMarker(markerOption);
marker.setRotateAngle(0);
latLngs.add(latLng);
}else {
latLngs.remove(latLng);
aMap.clear();
for (LatLng mo : latLngs) {
MarkerOptions markerOption = new MarkerOptions();
markerOption.position(mo);
aMap.moveCamera(CameraUpdateFactory.changeLatLng(mo));
markerOption.draggable(true);
markerOption.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), img)));
markerOption.setFlat(true);
Marker marker = aMap.addMarker(markerOption);
marker.setRotateAngle(0);
}
}
}
|