javascript - 使用“all”运算符的 Mapbox 表达式有什么问题?
问题描述
我有一个带有多个多边形的 geojson。每个多边形都有一个名称。我想显示除“boundingBox”之外的所有多边形。我在 addLayer() 中使用过滤器:
"filter": ["all",["==", "$type", "Polygon"],["!=",["string", ['get', 'name'],""], "boundingBox"]]
但没有多边形出现。
如果我做:
"filter": ["==", "$type", "Polygon"]
所有多边形都出现了。
这里出了什么问题?
解决方案
看起来您混合使用了已弃用的过滤器语法 ( $type
) 和表达式语法,这是不允许的。
表达式语法和下面不推荐使用的语法不能混合在一个过滤器定义中。 https://docs.mapbox.com/mapbox-gl-js/style-spec/#other-filter
尝试
"filter": ["all",["==", ["geometry-type"], "Polygon"],["!=",["string", ['get', 'name'],""], "boundingBox"]]
推荐阅读
- ansible - Ansible "rc" 条件检查因 when 条件失败
- azure - Azure 媒体服务 - 会议模式
- execution - Test Runner 文件 - 悬停在错误上不会提示用户导入 api
- c# - 如何将前导0添加到int变量
- angular - 添加授权标头时出现CORS错误
- c# - 使用c#的angularjs页面中的无效硒元素选择器
- encoding - 使用 ffmpeg 从 m3u8 链接下载时视频滞后
- javascript - 当我在 javascript 中使用 jinja2 for 循环时,为什么 VS Code 会显示错误?
- h5py - h5 KeyError:“无法打开对象(对象'数据'不存在)”
- vba - 从 activeX 文本框获取文本(VBA、powerpoint)