如何在Mapbox表达式中判断属性值是否为空或空白字符?
问题解答
当然可以用['==', ['trim', ['get', 'fieldName']], '']这种写法来检测字段值是否为全空白(空格)的情况,结合null判断就能覆盖你需要的「字段值为null或空白」的场景。
原代码里的['to-boolean', ...]判断逻辑范围太宽泛——它会把空字符串、全空格、数字0、false等多种值都转为false。如果只想精准过滤null和纯空格的情况,用trim函数处理后判断是否为空字符串是更合适的方案。
优化后的表达式可以写成这样:
'icon-image': [ 'case', // 判断字段是否为null ['==', ['get', layoutProperties?.selectedLabelAttribute], null], 'none', // 判断修剪后是否为空字符串(覆盖全空格的情况) ['==', ['trim', ['get', layoutProperties?.selectedLabelAttribute]], ''], 'none', // 其他情况显示图标 layoutProperties?.background ]
这样就能精准处理「字段为null」或者「字段是纯空格」的两种情况,其他正常内容都会显示图标。
内容的提问来源于stack exchange,提问作者Kamal Kant
相关产品推荐
相关产品推荐

