铯大量实体更新

时间:2017-06-27 14:57:10

标签: javascript cesium

我正在处理一个处理传感器数据的项目。在我的后端,所有内容都存储在一个数据库中,该数据库由控制器进行轮询并转换为kml以显示在铯球上。此调查每5-10秒发生一次,包含大约4000-8000个对象(我们存储最多1分钟的数据,因此我们正在查看类似20k - 50k点的某个地方)。在此之后,我有一个更新功能,它会慢慢淡化标记,每5秒更新一次。

要在地图上加载kml,我使用以下函数:

var dataSource = new Cesium.KmlDataSource();
dataSource.load('link').then(function(value);
viewer.dataSources.add(dataSource);
});

在更新颜色函数上,我迭代数据源实体集合中的所有对象并像这样更新它们(这是非常低效的):

var colorUpdate = Cesium.Color.fromAlpha(newColor, .4);
dataSource.entities.values[i].billboard.color = colorUpdate;

当我这样做并添加或颜色更新时,我看到了大量的延迟,并且如果有什么建议可以解决这个问题,我很好奇吗?通常我会冻结几秒钟。在数据在地图上60秒之后,它会被删除(在颜色更新循环中只是一个不同的情况)

dataSource.entities.remove(dataSource.entities.values[i]);

是否有可能为整个实体集合设置属性,因此当此集合变为30秒时,它会将颜色更新为新的颜色?看来我只需要找到一种方法来为整个集合和单个实体设置属性。有没有人知道如何做到这一点或有更好的建议?

0 个答案:

没有答案