基于echarts地图事件主动触发

仅作记录使用.

因项目需要, 需要实现点击界面的某个按钮触发地图的点击事件, 将地图上区域的名字显示出来.


原始地图


点击按钮之后高亮显示区域,等同于点击地图

代码实现:

// 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: 我知道这个功能很无聊, 但这就是需求.....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容