仅作记录使用.
因项目需要, 需要实现点击界面的某个按钮触发地图的点击事件, 将地图上区域的名字显示出来.
代码实现:
// name参数为点击区域的名字, 譬如上图所示为"武汉市"
var test = function(name) {
// 构建click事件请求参数
var param = {
target: {
style: { _name: name },
_mapType: ""
},
event: {}
};
// echart为地图实例
// 循环chart列表, 获取地图对象
for( var chartList = echart._chartList, i = chartList.length; i--; ) {
var o = chartList[i];
// 如果为地图
if( "function" == typeof o["onclick"] && o["_mapTypeMap"] ) {
o["isClick"] = true; // 模拟点击,骗过点击逻辑
param.target._mapType = o["_mapTypeMap"][name]; // 获取点击列表区域内的上级名字
o.__proto__.onclick.call(o, param); // 触发默认的点击事件
break;
}
}
}
PS: 我知道这个功能很无聊, 但这就是需求.....