mapv
mapv copied to clipboard
动画效果开启后似乎不会在删除图层时完全释放
我仿照 http://mapv.baidu.com/examples/#baidu-map-point-heatmap-time.html 做了一个动画效果的热力图,内容随查询条件变化而刷新。 实际应用时发现,每次刷新数据,浏览器都会变得越来越卡,直至动画无法流畅播放或崩溃。
更新图层动作如下:
function (result) {
mapvLayer&&mapvLayer.hide();
var dataSet = new mapv.DataSet(convertData(result.data));
mapvLayer = new mapv.baiduMapLayer(map, dataSet, option);
}
option与例子一致:
var option = {
size: 13,
gradient: { 0.25: "rgb(0,0,255)", 0.55: "rgb(0,255,0)", 0.85: "yellow", 1.0: "rgb(255,0,0)"},
max: 10,
animation: {
type: 'time',
stepsRange: {
start: 0,
end: 100
},
steps: 100,
trails: 10,
duration: 5,
},
draw: 'heatmap'
}
如果开启了动画效果,控制台会疯狂输出drawGray和changeColor的计时。 经过测试发现,只要option当中加入了animation配置信息并生成了一次内容,之后如果用不带animation的option重新生成内容,控制台就依然会疯狂输出,而不是预料中的只输出一次drawGray和changeColor,哪怕此时的热力图是静态的。 即使用map.clearOverlays()或者mapvLayer.hide()也无法将mapv图层的效果重置。
另外,在API里我只看到更新option的方法layer.update,没有更新dataSet的方法,也就是说如果图层要更新数据,只能像我现在写的一样用map.clearOverlays()、map.removeOverlay(layer)或者mapvLayer.hide()销毁并重建吧?
同问,我也感觉没有释放,占用了很大内存
而且点多了,cpu占用感觉会特别高。。
问题解决了吗,我也越到相同的问题