首页 / 浏览问题 / WebGIS / 问题详情
请教客户端标签专题图自定义文本标签样式的实现方案
1EXP 2024年01月10日

目前项目采用的是leaflet+supermap的方案,按官网示例已实现按专题图的属性字段名称,展示设定值对应风格数组的样式,但是需求不是仅展示数字,需要展示类似于label+value的文本并按value控制fillColor,如:省156(背景色:红色),但没找到支持文本字段并按某个数值展示fillColor的方法,尝试通过设置isAllowFeatureStyle属性后,在feature中加入包含fillColor的style对象来实现,但仍未奏效,查看了官方文档,在百度和该社区搜索了相关问题无果,望大佬们能解答一下,感谢!

1个回答

你好,1、如果想通过isAllowFeatureStyle设置ThemeFeature的样式比图层layer的样式更高的优先级,是对LabelThemeLayer进行设置的,例如:layer.isAllowFeatureStyle,不是在style中设置。

2、请问题中“label+value的文本并按value控制fillColor”是指标签专题图属性字段存储的值就是“省156”这样的组合,但是想要用字段中的“156”作为标签专题图的填充颜色是吗?如果是这样的话,如果1中的方式依然没有生效,可以看一下styleGroups风格数组,设定值对应的样式,参考示例:

https://iclient.supermap.io/examples/leaflet/editor.html#labelThemeLayer

1,865EXP 2024年01月10日

你好,首先感谢您的解答!

关于您回复的第一条,对LabelThemeLayer设置,按下图的尝试了下,还是未起作用

第二条提到的“label+value的文本并按value控制fillColor”,在上图中的最下方有部分的设置styleGroups,如果只传value作为layer.themeFields是可以达到您给出的参考示例的效果,但按我目前了解到的情况,似乎layer.themeFields是既作为styleGroups内样式的选择依据,又作为最终展示的内容,如果我想展示上述的label+value形式文本,则不能以styleGroups的start和end判断区间给feature赋予样式,请问您还有什么好的解决思路吗?

通过修改开源的源码实现了,各位如果遇到相似需求,也可以考虑下修改源码吧,个人感觉超图源码挺规范的,修改时配合官方手册和注释很方便,在依赖和环境方面,之前改elementUI源码时遇到了不少坑,这次基本没有,打包优化也不错,给超图码农点个赞哈哈

如果官方配置项能支持label+value的显示格式,并且label和value的样式可以分开渲染就更好了,感觉不少人也会遇到不仅仅只展示value数值的需求,算是给官方提的一点小建议吧
非常感谢你的建议,我们这边会尽力完善产品。如果方便,可以私信我联系方式,这边了解一下具体的需求和问题。
...