echarts js 修改geo 地图样式踩坑实录,自定义轮廓与颜色设置指南

echarts js 修改geo 地图样式踩坑实录,自定义轮廓与颜色设置指南

echarts js 修改geo 地图样式踩坑实录,自定义轮廓与颜色设置指南

本文关键词:echarts js 修改geo

最近接了个活,要搞个全国热力图。

老板说要把省份边界搞好看点。

别用默认的灰色,太土了。

我心想这还不简单,改改配置就行。

结果被 echarts js 修改geo 这个功能折腾了一整天。

真不是技术难,是坑太深。

很多老教程都是几年前的。

现在 ECharts 5 版本更新快。

很多参数早就变了。

照着旧文档改,直接报错。

我一开始想改背景色。

发现 geo 组件里没有 backgroundColor 这个属性。

后来查了官方最新文档。

才发现要放在 series 里。

或者在 geo 里用 itemStyle。

这里有个大坑。

很多开发者喜欢用 visualMap。

但 visualMap 只能控制颜色深浅。

不能控制边框颜色。

我想把省份边框改成亮蓝色。

怎么调都不生效。

调试了半天,发现是 zlevel 的问题。

geo 的层级太低,被 series 挡住了。

把 geo 的 z 值设大点就好了。

这细节没人写进教程里。

都是靠踩坑换来的经验。

再说说区域填充。

默认是渐变色,挺好看。

但老板非要纯色。

我在 itemStyle 里设了 color。

结果发现只有未选中的区域变了。

选中的区域还是渐变。

这是因为 emphasis 状态没改。

echarts 有 normal 和 emphasis 两种状态。

必须两个都改,才能彻底变色。

这点一定要记住。

不然用户鼠标悬停时,样式乱跳。

体验极差。

还有数据映射的问题。

很多新手把数据直接塞给 geo。

其实 geo 只负责地图展示。

数据应该放在 series 里。

通过 regionName 匹配。

如果名字对不上,数据就显示不出来。

比如“新疆”和“新疆维吾尔自治区”。

这种细微差别能搞死人。

建议提前清洗数据。

用字典映射一下。

别指望 ECharts 能自动纠错。

它很死板。

关于地图轮廓线。

默认是细线。

我想加粗一点。

设了 borderWidth。

发现线太粗,把小岛屿都遮住了。

这时候要用 areaColor。

配合 opacity 使用。

半透明效果很高级。

但要注意性能。

如果数据量大,渲染会变卡。

我测试过,超过 5000 个点。

浏览器就开始掉帧。

这时候要考虑降采样。

或者用 WebGL 渲染。

不过那是进阶玩法了。

先保证能用再说。

还有一个隐藏坑。

地图缩放。

默认缩放倍数有限。

我想让地图能缩得更小。

看完整中国。

结果发现 center 和 zoom 不生效。

后来发现要配合 roam 属性。

roam 设为 true。

才能启用缩放和平移。

不然地图就是死的。

这点很容易被忽略。

特别是移动端。

手指滑动没反应,用户会以为坏了。

最后说说颜色配置。

别用 RGB。

用十六进制代码最稳。

RGB 有时候解析有问题。

特别是带透明度的。

rgba 函数在旧版本里支持不好。

现在 5.0 支持了。

但为了兼容老设备。

还是用 hex 码保险。

比如 #1E90FF。

这种天蓝色很清爽。

比默认的蓝绿好看多了。

总之,echarts js 修改geo 真的需要耐心。

别指望一键生成完美效果。

都是一个个参数调出来的。

遇到问题,先看控制台。

再看官方文档。

别信百度的旧文章。

官方文档才是真理。

虽然写得有点干。

但信息最准确。

希望这些踩坑经验能帮到你。

少走弯路,早点下班。