0

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 每 50 毫秒,我会收到来自服务器的更新,然后我会更新 Mapbox GL JS 中的点数据,如下所示:

    map
      .getSource('pointsSource')
      .setData(pointsData);

当我发现我的笔记本电脑进入 turbo 模式并使用 200% 的 CPU 时,戏剧就开始了,而在我不这样做.setData()的地方(不更新数据而只显示地图)它使用25% 工作。

在任何给定时间,我只更新 25 个点。.setData()考虑到它与点数无关,而是与我调用非常快的事实有关,我该如何提高性能?我是这样想的,因为我做了1点或10000点的实验,结果是一样的(200% CPU)。

4

1 回答 1

2

我不认为setData打算如此频繁地调用。如果您不需要移动几何体(只是属性),则可以使用setFeatureState

或者,至少要停止窗口锁定,您可以idle在调用之前等待事件setData()

map.on('idle', () => map.setData(...));

于 2020-04-17T10:13:08.470 回答