每隔50毫秒,我就从服务器接收更新,然后更新Mapbox中的点数据,如下所示:
map
.getSource('pointsSource')
.setData(pointsData);
当我发现我的笔记本电脑进入涡轮模式并使用200%的CPU时,剧情就开始了,而当我不做.setData()
(不更新数据,只显示地图)时,它使用25%.工作。
在任何时候,我只更新25点。考虑到它与点数无关,而与我调用.setData()
的速度非常快这一事实无关,我如何提高性能呢?我这样想是因为我用1 point或10000做了实验,结果是相同的(200% CPU)。
发布于 2020-04-17 10:13:08
我不认为setData
会如此频繁地被打电话。如果您不需要移动几何图形(仅仅是属性),您可能可以使用setFeatureState
。
或者,至少为了停止窗口锁定,您可以在调用idle
之前等待setData()
事件。
map.on('idle', () => map.setData(...));
https://stackoverflow.com/questions/61264144
复制相似问题