使用 Mapbox 通过过滤器进行高效加载

Efficiant loading via filter with Mapbox

我有几个 mapbox 数据集,每个数据集都有一组位于不同 城市 的要素。每个要素都有一个名为 city 的字段,其中包含要素所在的城市(例如 city = "new york")。在 mapbox studio 中,我有一个样式,其中包含由每个数据集组成的图层。我想加载一个地图,它的边界框包含所有带有 city == "new york" 的特征(使地图视图适合特征边界框)。我怎样才能做到这一点, 最好 而无需加载不满足 city=="new york"

的功能

在 Mapbox Studio 中 selecting 相关图层后,select 属性 您想要控制其可见性。例如,假设您有兴趣为数据集中的每个特征显示一个文本字段(相同的逻辑也可以应用于图标图像)。一旦 属性 图层被 selected,点击图层编辑器中的 "Style with data conditions" 选项。然后系统将提示您选择一个数据字段(在您的情况下为 city),随后提示您为此数据字段设置值(在您的情况下为 new york)。

如果我没理解错的话,你有一张包含所有城市的底图,但是当你在 mapbox-gl-js 中加载地图时,你想将它们过滤到一个特定的城市。

您可以通过调用:

map.setFilter('my-cities-layer', ['==', ['get', 'city'], 'new york']);

不过,实际上并没有一种简单的方法来过滤 所有 层以仅包含具有该标签的数据。