mapbox - 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.
如何更新自定义添加层的圆半径?
解决方案
您可能需要等待地图idle
事件触发才能知道图层已准备好进行样式设置。请参阅https://docs.mapbox.com/mapbox-gl-js/api/map/#map.event:idle。
如果map.addLayer
返回一个在图层能够设置样式时解决的承诺会很好......
推荐阅读
- javascript - 反应“appendChild”将节点追加到div下面而不是在里面?
- data-collection - 为我在 Stack Overflow 中关于游戏化的硕士论文收集数据
- java - 如何在java中向特定客户端发送响应?
- angular - Angular:将用户活动发送到服务器
- reactjs - 带钩子的 React-cookies
- gcc - 无法修改数据段寄存器。尝试时抛出一般保护错误
- javascript - 为两个按钮添加一个条件,当其中一个被显示时点击它?
- javascript - 为什么在 vue.js 中这些数据不能正确地从父组件传递到子组件?
- r - 当替换返回表达式时如何获取函数名称
- python - 如何使用请求库在 Python 中将密钥发送到网页?