echarts geo显示省份名称
做GIS这行,眨眼都十五年了。以前用ArcGIS,那叫一个重,装个软件能卡半天。现在搞前端,用Echarts,轻快是轻快,但有些坑,真得自己踩进去才知道疼。
今天聊聊echarts geo显示省份名称这个问题。很多人问我,为啥我配好了geojson,地图出来了,名字就是不出来?或者名字乱跑,跑到海里去了?我也遇到过,那时候刚转前端,头发都快掉光了。
首先,你得确认你的geojson数据对不对。别随便从网上扒一个,版本不对,坐标体系不对,全白搭。现在主流是CGCS2000或者WGS84,Echarts默认支持的比较好,但有些老数据,那是GCJ02,也就是火星坐标。你拿火星坐标直接扔进去,名字肯定飘。得转一下,或者找个对应版本的geojson。这一步最烦人,我上次为了转坐标,熬了个大夜,咖啡喝了三杯,手都在抖。
然后,就是series里的配置。很多人喜欢抄代码,抄完发现不行。你得看自己的数据结构。name字段必须和geojson里的properties.name完全一致,一个标点符号都不能差。空格也不行,全角半角也不行。我有一次就是多了个空格,找了半天没找出来,最后逐字比对才发现。这玩意儿,急不得。
还有,label的show属性,别漏了。还有emphasis.label.show,鼠标悬停的时候也得开。不然平时看不见,鼠标放上去才看见,体验太差。用户不是来找茬的,是来看数据的。
再说说样式。文字颜色,别用纯黑,刺眼。用深灰,#333,或者#555。字体大小,别太小,手机上看不到。也别太大,挡住地图。12px到14px比较合适。位置,center,或者inside,看你的地图缩放级别。如果地图缩得很小,名字挤在一起,那就得用formatter函数,动态调整,或者只显示简称。
我有个客户,非要让每个省份的名字都带个阴影,还要发光。我说这性能扛不住啊,他说不管,就要效果。没办法,硬着头皮上。结果加载慢得一批,服务器差点崩了。后来我跟他商量,改成静态图片叠加,或者用SVG,这才解决。有时候,技术得妥协,为了用户体验,也得牺牲点炫技。
还有啊,别忽视浏览器兼容性。虽然Echarts支持得不错,但有些老IE,还是得小心。用polyfill,或者降级处理。别让用户骂娘。
最后,调试工具要用好。Chrome的DevTools,F12打开,看Network,看Console。报错信息,仔细看。别只看表面,深层原因,往往在日志里。我有一次,名字不显示,Console里没报错,最后发现是CSS样式覆盖了,z-index太低。这种坑,最隐蔽。
总之,echarts geo显示省份名称,看着简单,细节满满。数据清洗,坐标转换,配置调试,样式优化,每一步都不能马虎。别指望一蹴而就,得多试,多查文档,多问人。我干了十五年,还在学新东西。这行,没终点。
希望这点经验,能帮到你。少走弯路,早点下班。毕竟,生活不止代码,还有诗和远方。虽然我现在只看到代码和黑眼圈。