mapv icon indicating copy to clipboard operation
mapv copied to clipboard

动画效果开启后似乎不会在删除图层时完全释放

Open mirari opened this issue 7 years ago • 3 comments

我仿照 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()销毁并重建吧?

mirari avatar Oct 25 '16 08:10 mirari

同问,我也感觉没有释放,占用了很大内存

NYACC avatar Feb 01 '18 10:02 NYACC

而且点多了,cpu占用感觉会特别高。。

devinRex avatar May 03 '18 15:05 devinRex

问题解决了吗,我也越到相同的问题

bestmilan avatar Aug 01 '18 07:08 bestmilan