解决Echarts地图区域点击事件无效 && geo.lable.formatter无效

1.解决Echarts地图区域点击事件无效

需求:获取echarts当前点击城市名称
bug:Echarts地图区域点击事件无效,添加.getZr()后又无法获取到地图当前点击城市。
一些资料说是版本问题,然鹅我下了几个最新echarts版本都无效。怀疑是我加了自定义区域让它点不中了?
解决

//添加.getZr()之后,又获取不到params中当前点击城市
let self=this;
this.chart.getZr().on('click', function (params) {
	console.log('好的终于点击到了,但是点整个画布都能触发');
	//判断点击的是地图区域  而非空画布
	//通过判断鼠标在子元素上指针样式是否为pointer
	if(self.$refs.ele.childNodes[0].style.cursor=='pointer'){
	//self.city我在地图配置项emphasis.formatter中有存(附代码)
		console.log(self.city);	
	}
}

//this.chart.setOption({})配置项中获取的city
   emphasis: { //当鼠标放上去  地区区域是否显示名称
		       label: {
				    show: true,
				    formatter: function (params) {
						this.city=params.name;//存取当前鼠标滑过城市
						return params.name;
					 },
			},
		}
2.echarts 地图geo.lable.formatter无效

解决Echarts地图区域点击事件无效 && geo.lable.formatter无效_第1张图片
这个问题官网应该已经修复了,如果你的echarts还是旧版本的话
找到(全局搜)源码echarts.js文件的getFormattedLabel: function (name, status)方法
跟着官网改一下就好

        status = status || 'normal';
        var regionModel = this.getRegionModel(name);
        //删除
       // var formatter = regionModel.get(
         //   'label'
           // + (status === 'normal' ? '.' : status + '.')
            //+ 'formatter'
        //);
        //删除

		//改为
        var formatter = regionModel.get((status === 'normal' ? '' : status + '.') + 'label.formatter');
        //改为
        var params = {
            name: name
        };
3.echarts 报错Component series.lines not exists. Load it first.

出现在我想使用echarts地图延长线的时候,解决:
echarts引入是不要引入压缩文件就ok了


//改为


你可能感兴趣的:(Echarts,前端,echarts,json,js)