使用“ all”运算符的Mapbox表达式有什么问题?

时间:2019-07-01 10:18:15

标签: javascript filter mapbox geojson

我有一个带有多个多边形的geojson。每个多边形都有一个名称。我想显示除“ boundingBox”以外的所有多边形。我在addLayer()中使用了过滤器:

"filter": ["all",["==", "$type", "Polygon"],["!=",["string", ['get', 'name'],""], "boundingBox"]]

,但没有出现多边形。如果我这样做:

"filter": ["==", "$type", "Polygon"]

所有多边形出现。

这是怎么回事:

1 个答案:

答案 0 :(得分:1)

好像您混合使用了不赞成使用的过滤器语法($type)和表达式语法,这是不允许的。

  

下面的表达式语法和不建议使用的语法不能混合在单个过滤器定义中。   https://docs.mapbox.com/mapbox-gl-js/style-spec/#other-filter

尝试

"filter": ["all",["==", ["geometry-type"], "Polygon"],["!=",["string", ['get', 'name'],""], "boundingBox"]]