首页 > 解决方案 > MapboxGL JS 动画过渡 GeoJSON 特征不透明度

问题描述

我有一个 GeoJSON 图层,其中添加了作为我的 Mapbox 地图源的房地产地段。当用户点击特定地块时,我的创意团队希望该地块产生脉冲,或者让它的不透明度从 0.1 衰减到 0.7 不断重复,直到我们移除活动状态。我向所选批次添加了一个活动功能状态,并且着色一切正常,但是我不确定在该功能处于活动状态时是否可以实现连续淡入/淡出。这在 MapboxGL JS 中可行吗?

我附上了很多彩色的图片。

在此处输入图像描述

我们也曾经在这个项目中使用谷歌地图并且能够达到预期的效果,所以我创建了一个 GIF 来清楚我们正在寻找什么。

在此处输入图像描述

有人知道吗?

提前致谢。

标签: javascriptmapboxmapbox-gl-js

解决方案


fill-color是一个可转换的属性,因此当您更改不透明度时,它会在短时间内视觉转换 - 默认情况下为 300 毫秒。

为了实现你想要的:

  • 使用 window.setInterval() 创建一个计时器循环
  • 在里面,设置图层的不透明度使用map.setPaintProperty('mylayer', 'fill-opacity', ...)
  • transition或者,使用样式定义中图层上的属性控制过渡持续时间。

推荐阅读