echarts自定义geo显示名称和值:别再被默认样式坑了,教你手写高逼格地图

echarts自定义geo显示名称和值:别再被默认样式坑了,教你手写高逼格地图

做地图可视化,你是不是也烦透了?

默认的GeoJSON,名字乱码,位置偏移。

看着那些丑出天际的默认地图,我真心觉得想砸键盘。

这篇文,直接教你怎么让地图变得“听话”。

解决echarts自定义geo显示名称和值的核心痛点。

让你做的地图,老板看了都点头,同事看了都羡慕。

先说个真事。

上周给一个大客户做数据大屏。

对方是个强迫症晚期患者。

他指着屏幕上的地图,脸都绿了。

“这名字怎么是乱码?”

“这个省怎么跑到海里去了?”

我当时心里一万只草泥马奔腾。

但表面上还得装淡定。

最后没办法,只能熬夜改配置。

那一刻,我深刻意识到:

默认的GeoJSON,真的不够用。

必须学会echarts自定义geo显示名称和值。

否则,你永远只是个调包侠。

别怕,这玩意儿其实不难。

核心就两步:改坐标,改名字。

第一步,搞定坐标偏移。

很多地图看起来歪歪扭扭。

是因为原始数据的坐标系不对。

你需要把经纬度映射到正确的像素位置。

代码里要加个map配置。

把原始的经纬度,转成屏幕坐标。

这一步,决定了地图的“骨架”。

骨架不正,怎么画都丑。

第二步,才是重头戏。

怎么让名字和数值,显示得漂亮?

默认的label,又小又挤。

根本看不清重点。

这时候,就要用到series里的label配置。

别用默认的show: true

太简陋了,没灵魂。

你要自定义formatter函数。

在这个函数里,你可以随意拼接HTML。

比如,把名字加粗,把数值标红。

甚至加个图标,加个背景色。

这才是echarts自定义geo显示名称和值的精髓。

让数据自己“说话”。

举个栗子。

假设你要展示各省份的GDP。

普通做法:

只显示一个数字。

高大上的做法:

显示“省份名 + 增长率箭头 + GDP数值”。

代码大概长这样:

formatter: function(params) {

return params.name + '
' + params.value;

}

别急着复制粘贴。

这里有个坑。

很多新手会忽略rich属性。

如果不定义样式,你的HTML标签全是默认的。

丑,真的丑。

你要在rich里定义.name.value的样式。

字体大小,颜色,对齐方式。

细节决定成败。

我见过太多人,因为少写一个分号,或者括号不匹配。

导致整个地图渲染失败。

那种绝望,懂的都懂。

还有,别忽视数据源的质量。

有些GeoJSON文件,本身就是错的。

名字对不上,或者多边形闭合有问题。

这时候,你得用工具去清洗数据。

别指望echarts能自动修复一切。

它只是个展示工具。

数据源才是根本。

我之前就吃过这个亏。

花了一下午调样式,结果发现是数据源的问题。

心态崩了。

所以,先检查数据,再调样式。

这是血泪教训。

最后,关于性能。

如果你要显示几百个地名。

别全开label。

会卡死浏览器。

只高亮重点区域。

其他的,鼠标悬停再显示。

这样既美观,又流畅。

这才是专业玩家的做法。

总结一下。

做地图,别偷懒。

默认的样式,永远满足不了需求。

学会echarts自定义geo显示名称和值。

掌握坐标映射,掌握label格式化。

加上一点点对细节的偏执。

你的地图,就能从“能用”变成“好用”。

别再抱怨工具不好用了。

问题往往出在自己身上。

去改代码吧,别废话。

哪怕代码写得再烂,也要跑得通。

这就是程序员的浪漫。

虽然,这浪漫有点费头发。