我想根据用户是否选择在地图上动态显示或隐藏单个几何。我知道Mapbox GL js不直接支持此功能,因此我试图找出最好的解决方法。我不希望不更新源数据,而是致电map.getsource('mysource').setData(data);
,因为这似乎有些过分。
是否可以动态地更新表达式并调用setPaintProperty
,以便将一个数据子集设置为0%不透明度,从而将其隐藏?然后,我可以重新计算子集并在需要时重新设置属性:
- 用户单击
hide
按钮,这会将Feature
的唯一标识属性传递给我的函数 - 该函数获取现有的
hidden
和shown
子集,然后通过动态重写两个表达式将Feature
的标识符从一个移到另一个。 - 新表达式将传递到
map.setPaintProperty('layer','opacity',expression);
几何的总数很小(