近期在项目中遇到实时定位车辆位置时,给车添加图标,问题就是每一次定位车辆位置时图标重合,并没有被想象的前面那个位置图标消失,重写创建一个图标。解决办法:
将地图的marker变量设置为全局变量。每次创建图标时调用marker.remove()方法删掉前面的图标。
但是这种方法很容易出现内存溢出,所以这只是一个暂时的办法,如果各位有更好的方法还请告知!
private Marker marker=null;
if(marker!=null){
marker.remove();
}
MarkerOptions markerOption = new MarkerOptions();//创建marker设置对象
markerOption.position(latLng);//车辆的经纬度
//markerOption.title(g_time).snippet(speed+"km/h");
/**
* 添加车辆的图标
*/
markerOption.draggable(true);
markerOption.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_real_time_location_position_normal)));
// 将Marker设置为贴地显示,可以双指下拉看效果
// markerOption.setFlat(true);
// markerOption.setInfoWindowOffset(0,-10);//设置弹出框的位置
// markerOption.visible(true);
marker = aMap.addMarker(markerOption);//添加图标