我正在尝试为一个图层设置一个过滤器表达式,其中所有要素在其属性中都有一个名为“iri”的字符串类型字段。该表达式应该是一个简单的相等匹配,但是 Mapbox (v2.14.1) 产生的错误似乎与传入的过滤器不对应。
过滤器对象,在传递到地图之前输出到控制台,是:
["==",["get","iri"],"some-iri-value"]
Mapbox 的错误输出:
evented.js:151 Error: layers.my-layer.filter: array expected, string found
at bs (validate_style.js:13:41)
at iA (style.js:64:5)
at aA._validate (style.js:2234:16)
at aA.setFilter (style.js:1647:18)
at Map.setFilter (map.js:2720:20)
据我所知,这是正确的语法,并且它确实适用于样式属性。我在这里错过了什么吗?
validate_style.js 代码可能需要 JSON 字符串值,而不是原始数组。如果是这样,通过 JSON.stringify 将其转换为 JSON 字符串可能会解决问题。
等等,实际上,我认为这是相反的问题。很快就会编辑。