最早我是想通过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);
后续补充
我从这里发现:https://github.com/ecomfe/ech...,选中地图的写法是这样的,而试了一下果然可以。主要是type要是mapSelect
,而不是geoSelect
myChart.dispatchAction({
type: 'mapSelect',
// 可选,系列 index,可以是一个数组指定多个系列
// seriesIndex: 0,
// 可选,系列名称,可以是一个数组指定多个系列
// seriesName: string|Array,
// 数据的 index,如果不指定也可以通过 name 属性根据名称指定数据
// dataIndex: number,
// 可选,数据名称,在有 dataIndex 的时候忽略
name: '河北'
});