博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
echarts的疑似bug
阅读量:6329 次
发布时间:2019-06-22

本文共 1567 字,大约阅读时间需要 5 分钟。

  hot3.png

今天应用户要求,要调增以前echarts做的一个地图专题图,把默认文字标注改为数据数字标注,然后设置一下样式。本来这是一个很简单的事情,至少我以为是这样的,毕竟echarts的接口都很规范,只要添加一下就可以了,而且我又深入地看了一下文档,学会了采用直接setOption的方式更新地图设置项。不过,不如意事常八九,内容很好改,字体颜色和大小也都很顺利,但是遇到了边线和颜色的时候,发现死活也改不了。找了找官方例子,竟然没有在geo设置的例子,自己写一个demo又觉得麻烦。开始怀疑是不是bug,于是下载定制的4.x版本,完全版和源码版本,发现样式倒是都顺利了,但内容(通过label的formatter进行定制)又不变了。我快要疯了,原本计划的事情只好往后推。样式设置那部分是在没有头绪,formatter这个还算简单,于是用4.x的源码版本开始跟踪调试,跟踪到src/coord/geo/GeoModel.js的149行

getFormattedLabel: function (name, status) {        var regionModel = this.getRegionModel(name);        var formatter = regionModel.get('label.' + status + '.formatter');        var params = {            name: name        };        if (typeof formatter === 'function') {            params.status = status;            return formatter(params);        }        else if (typeof formatter === 'string') {            return formatter.replace('{a}', name != null ? name : '');        }    },

发现var formatter这一行写得很硬,在3.x版本下,配置属性geo.label下分为normal和emphasis,进行分别的样式设置,到了4.x下,normal被提上去了一级,跟在了lable下,而emphasis被整体提了一级,合并了itemStyle和label。但这里的代码显示,在读取的时候仍旧带着这个status,最终的结果只能是formatter不会被找到。尽管get方法后面带有参数可以访问父对象的属性,但因为这里的字符串拼接硬编码导致根本找不到formatter。

我摘这里做了一点修改:

var formatter = regionModel.get('label.' + status + '.formatter')|| regionModel.get('label.formatter',true);

当找不到的时候,就去找这个没有状态的名称(没办法,即使设置项是按照旧的方式给的,在其合并选项的时候也会按照新的结构赋值,但读取方式没哟更新),然后,我在每个region中分别加入(其实真没必要,因为这个回调还获取不到数据,得用全局变量)这个选项属性,好在区域不多,速度还可以忍受。

问题解决了,不打算深究是因为太过庞大发展过快来不及测试还是因为我下载并非稳定版本。我想后面要是再实现这类功能,我可能会用openlayers+geoserver+sld。sld貌似很强大。

话说有人知道svg怎么存emf么?

转载于:https://my.oschina.net/rodger/blog/1944850

你可能感兴趣的文章
C++ String
查看>>
获取系统托盘图标的坐标及文本
查看>>
log4j Test
查看>>
HDU 1255 覆盖的面积(矩形面积交)
查看>>
Combinations
查看>>
SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。...
查看>>
第二十一章流 3用cin输入
查看>>
在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。...
查看>>
获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
查看>>
Orchard 视频资料
查看>>
简述:预处理、编译、汇编、链接
查看>>
调试网页PAIP HTML的调试与分析工具
查看>>
路径工程OpenCV依赖文件路径自动添加方法
查看>>
玩转SSRS第七篇---报表订阅
查看>>
WinCE API
查看>>
.NET 4.5.1 预览版新特性
查看>>
POJ 3280 Cheapest Palindrome(DP 回文变形)
查看>>
oracle修改内存使用和性能调节,SGA
查看>>
SQL语言基础
查看>>
对事件处理的错误使用
查看>>