ECharts 轮流高亮中国地图各个省份
1. 小栗子 最早我是想通过dispatchAction方法去改变选中的省份,但是没有起作用,如果你知道这个方法怎么实现,麻烦你可以告诉我。 我实现的方法是另外一种。 dispatchAction({ type: 'geoSelect', // 可选,系列 index,可以是一个数组指定多个系列 seriesIndex?: number|Array, // 可选,系列名称,可以是一个数组指定多个系列 seriesName?: string|Array, // 数据的 index,如果不指定也可以通过 name 属性根据名称指定数据 dataIndex?: number, // 可选,数据名称,在有 dataIndex 的时候忽略 name?: string }) 后来我改变了一个方法。这个方法的核心思路是定时获取图标的配置,然后更新配置,最后在设置配置。 var myChart = echarts.init(document.getElementById('china-map')); var COLORS = ["#070093", "#1c3fbf", "#1482e5", "#70b4eb", "#b4e0f3", "#ffffff"]; // 指定图表的配置项和数据 var option = { tooltip: { trigger: 'item', formatter: '{b}' }, series: [ { name: '中国', type: 'map', mapType: 'china', selectedMode : 'single', label: { normal: { show: true }, emphasis: { show: true } }, data:[ // 默认高亮安徽省 {name:'安徽', selected:true} ], itemStyle: { normal: { areaColor: 'rgba(255,255,255,0.5)', color: '#000000', shadowBlur: 200, shadowColor: 'rgba(0, 0, 0, 0.5)' }, emphasis:{ areaColor: '#3be2fb', color: '#000000', shadowBlur: 200, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); myChart.on('click', function(params) { console.log(params); }); setInterval(function(){ var op = myChart.getOption(); var data = op.series[0].data; var length = data.length; data.some(function(item, index){ if(item.selected){ item.selected = false; var next = (index + 1)%length; data[next].selected = true; return true; } }); myChart.setOption(op); }, 3000); 2. 后续补充 我从这里发现:https://github.com/ecomfe/echarts/issues/3282,选中地图的写法是这样的,而试了一下果然可以。主要是type要是mapSelect,而不是geoSelect ...