请教关于map层层钻取刷新问题。

ttnttn 发布于 2014/09/23 08:58
阅读 782
收藏 0

我是用的是echarts 2.0.3版本,地图默认显示全国数据,可以点击查看各省的数据。

数据分为三种,使用legend控制查看不同数据。(设置了legend的 selectedMode: 'multiple')

现在遇到的问题是:

初始化全国数据显示正常,可以使用legend来控制。

但是点击查看省的数据时,数据和图层都加载重复,将legend点击为全不显示的时候还会显示出来图层和数据。

代码:


myChart.on(ecConfig.EVENT.MAP_SELECTED, function (param){
            this.clear();
            //this.restore();
            this.refresh();
            var len = mapType.length;
            var mt = mapType[curIndx % len];
            if (mt == '全国) {
                // 全国选择时指定到选中的省份
                var selected = param.selected;
                for (var i in selected) {
                    if (selected[i]) {
                        mt = i;
                        while (len--) {
                            if (mapType[len] == mt) {
                                curIndx = len;
                            }
                        }
                        break;
                    }
                }
                option.tooltip.formatter = '点击返回全国<br/>{b}';
            }
            else {
                curIndx = 0;
                mt = '全国';
                option.tooltip.formatter = '点击进入该市<br/>{b}';
            }
            currentLayer = mt;
            option.series[0].mapType = mt;
            option.series[0].markLine.data=[];
            option.series[1].mapType = mt;
            option.series[1].markLine.data=[];
            option.series[2].mapType = mt;
            option.series[2].markLine.data=[];
            option.title.subtext = mt + ' (点击切换)';
            myChart.setOption(option, true);
        });

从后返回数据加载时:

option.series[0].markLine.data=[];
             var arr = $.parseJSON(obj.jsonStr);
                var len = arr.length;
                    while(len--) {
                        option.series[0].markLine.data.push(arr[len]);
                    }

为option.series[0]、option.series[1]、option.series[2]都执行了不同数据赋值。

请教如何解决?



加载中
0
t
ttnttn
解决了,原来是myChart.setOption(option, true);调用了多次的问题。当点击地图时执行了setOption方法,然后去后台请求数据,请求完成以后又调用了一次,所以加载重复。删除第一次的调用就可以了。如果删除第二次的数据无法加载。
返回顶部
顶部