首页 > 解决方案 > Mapbox:更新自定义图层绘制属性

问题描述

在一个 mapbox 项目上工作。我创建了一个自定义图层,并希望更新该图层的绘制属性。我试过的方法不起作用。以下是详细信息:

我创建的图层:

map.addLayer({
        id: 'points-circle',
        source: 'points',
        type: 'circle',
        paint: {
          'circle-radius': pointSize*.6,
          'circle-color': {type: 'identity', property: 'color'},
        }
      })

后来,我尝试更新circle-radius属性,如下所示:

map.setPaintProperty('points-circle','circle-radius', pointSize*.6)

这失败并出现错误:Error: The layer 'points-circle' does not exist in the map's style and cannot be styled.如何更新自定义添加层的圆半径?

标签: mapboxmapbox-gl-js

解决方案


您可能需要等待地图idle事件触发才能知道图层已准备好进行样式设置。请参阅https://docs.mapbox.com/mapbox-gl-js/api/map/#map.event:idle

如果map.addLayer返回一个在图层能够设置样式时解决的承诺会很好......


推荐阅读