如何使用 Ceisum EntityCollection

How to use Ceisum EntityCollection

提问人:Glad 提问时间:10/31/2023 最后编辑:Parzh from UkraineGlad 更新时间:10/31/2023 访问量:37

问:

我正在尝试用于管理一些实体对象。但它不能在地球上显示。Cesium.EntityCollecion

这是我的代码:

const viewer = new Cesium.Viewer("cesiumContainer");
const collection = new Cesium.EntityCollection();
viewer.entities.add(collection);
collection.add({
    id: 1,
    position: Cesium.Cartesian3.fromDegrees(118.0, 35.0),
    point: {
        pixelSize: 100,
        color: Cesium.Color.RED,
    },
});

这个问题是由?铯版本是 1.109。viewer.entities.add(collection)

如果我使用:

viewer.entities.add({
    id: 1,
    position: Cesium.Cartesian3.fromDegrees(118.0, 35.0),
    point: {
        pixelSize: 100,
        color: Cesium.Color.RED,
    },
});

这个实体可以正确显示,但我需要管理不同的实体组。

铯JS

评论


答:

1赞 ZhefengJin 10/31/2023 #1

是的,这才是真正的问题。
您必须将 Entity 的实例添加到 viewer.entities 中。
若要管理不同的实体组,可以使用 CustomDataSource。
下面是示例代码。

const { Cartesian3, CustomDataSource, Viewer } = Cesium;

const viewer = new Viewer("cesiumContainer");

const group1 = new CustomDataSource("group1");
const group2 = new CustomDataSource("group2");

viewer.dataSources.add(group1);
viewer.dataSources.add(group2);

group1.entities.add({
    id: 1,
    position: Cartesian3.fromDegrees(118.0, 35.0),
    point: {
        pixelSize: 100,
        color: Cesium.Color.RED
    }
});

group2.entities.add({
    id: 1,
    position: Cartesian3.fromDegrees(140.0, 35.0),
    point: {
        pixelSize: 100,
        color: Cesium.Color.BLUE
    }
});