铯:动态改变实体位置

Cesium: Dynamically Change Entity Position

本文关键字:实体 位置 改变 动态      更新时间:2023-09-26

我正在使用数据库提供的位置数据绘制实体。

我正在使用

viewer.entities.removeAll();

在每次从数据库获得结果时删除所有实体。

由于实体目前是3D模型,这会导致浏览器的处理过程冗长而繁重。

是否有更好的方法来更新数据,例如一个实体数组。

或者一种缓存实体的方法,这样我就可以修改数据。

最终结果是,我可以在飞行中改变位置,然后在显示

上看到实体更新。

我使用

viewer.entities.add({
            name : name,
            position : position,
            orientation : orientation,
            model : {
                uri : url,
                minimumPixelSize : 50
            }
        });

添加实体

看一下拾取演示,您可以看到它在实时编辑器窗口的第26行左右将新的Cartesian3值分配给entity.position。更新一个实体要比销毁它并创建一个新实体快得多。

另外,如果你的数据库知道一个实体的位置会随着时间的推移而变化,你可以通过SampledPositionProperty提供它,并允许Cesium动画实体随着时间的推移沿着路径移动。