Mapbox GL/Maplibre GL 'to-number' fallback if null and not 0

问题描述 投票:0回答:1

如文档所述,在样式规范表达式中,

to-number
表达式将
null
值转换为
0
作为预期行为。对于我的用例,
null
0
意味着不同的东西,因为
0
是一个有效值。

这是我希望如何设置数据样式的示例:

'paint': {
      'circle-color': [
        'case',
          ['all', [">=", ["to-number", ["get", "value"]], 0], ["<", ["to-number", ["get", "value"]], 100]], '#fff',
          ['all', [">=", ["to-number", ["get", "value"]], 100], ["<", ["to-number", ["get", "value"]], 500]], '#000',
          "#2f2f2f"
      ]
    },

0-100 是白色,100-500 是黑色,其他任何东西(包括

null
)都是
#2f2f2f
.

我怎样才能使

case
语句捕捉到
null
值?我已经尝试使用
==
运算符来表示
null
,以及使用
to-string == ''
。两者都不适合我,或者他们的行为影响了其他有效值。

我正在使用

pg_tileserv
实例来提供我的数据,如果这有所不同的话。

mapbox mapbox-gl-js mapbox-gl maplibre-gl
1个回答
0
投票

我没有测试过这个,但这会使非数字值变红:

["case", ["typeof", ["get", "value"]], "number", [ /* insert handling of number here */ ], "red"]

如果您的非空值是字符串而不是数字,请更改为

"string"

© www.soinside.com 2019 - 2024. All rights reserved.