mapbox - mapbox gl setFilter 按特征属性是一个数组
问题描述
我有一个特征属性,它是一个 id 数组:feature.properties.ownerTypeIds: [1,2,3]
我有一个表格。在其中它有一个用于生成数组的所有者类型的多选:[1,2]
将要素数组与值数组进行比较的 mapbox gl 最新版本表达式是什么?Match 似乎不支持作为数组的特征属性。
如果功能数组中的任何 id 也在选定的选项数组中,我希望它设置为 true。因此,当它与“全部”中的许多其他过滤器结合使用时,它将起作用。所有这些都适用于许多其他过滤器,我只需要这里介绍的 ownerTypeIds 数组场景的帮助。
用户选择的任何值是否在功能的 ownerTypeIds 数组中?
我会很感激任何帮助。mapbox 表达式文档似乎不支持作为数组的特征属性。我希望我的评估是错误的!
感谢你!
谢谢,唐尼
解决方案
从地图框支持...
嗨,唐尼,
感谢您联系 Mapbox 支持。
你是对的; Feature 的属性只支持简单类型。话虽如此,您无法在运行时使用样式规范比较这两个列表。供您参考,这里有一个公开跟踪的问题。 https://github.com/mapbox/mapbox-gl-js/issues/2434
一种解决方法是创建一个新属性,该属性计算一个数组中的元素是否也存在于另一个数组中并设置一个真/假值。然后该布尔值可用于在您的过滤器中进行比较。
如果您还有任何问题,请告诉我
问候,
推荐阅读
- javascript - Chrome 开发工具 - javascript 片段测试:最后一行出现“未捕获的语法意外输入结束”错误
- c# - c# 2D 绘制图像不绘制图像
- visual-studio-code - VSCode - 实验装饰器是 [ts],但没有使用打字稿
- angularjs - ui-router:设置链接默认状态
- javascript - 如何使 ref 在多个组件上唯一反应
- python - 在代码中添加标题?第一头工作和第二头薪水
- tensorflow - 如何对 CNN keras 使用 k 折交叉验证
- c - 如何将一行整数拆分为数组?
- php - 在 Laravel 中注册完成后如何显示用户输入
- python - sklearn chi2取的p值是多少