如何根据属性值过滤MapBox热图中的点?

时间:2019-09-19 20:48:43

标签: javascript mapbox geojson

说我有一个基本的mapbox热图。构造此热图的矢量图块的geojson看起来像这样:

undefined

我了解如何按照此处的教程显示热图:

https://docs.mapbox.com/help/tutorials/make-a-heatmap-with-mapbox-gl-js/

请注意,尽管geojson中的每个功能都有一个icon-type属性。我想动态地告诉我的热图仅显示具有特定图标类型值(例如“自行车”或“猫”)的数据中的点。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您可以使用filter中使用的图层配置中的this exmple来实现。

在您的情况下,它将类似于:

map.addLayer({
  id: 'heatmap-layer',
  type: 'heatmap',
  source: 'your-source',
  paint: { ... },
  filter: ['==', ['get', 'icon-type'], 'cat']
});

'=='仅允许下两个参数相等的功能。

'get'用于访问要素属性,因此['get', 'icon-type']解析为要素的icon-type属性。

'cat'是乱七八糟的字符串。