1.创建一个实体
const point1 = new Cesium.Entity({
position: Cesium.Cartesian3.fromDegrees(115, 39),
point: {
pixelSize: 10, //点像素大小
color: Cesium.Color.RED, //只能用Cesium.Color
outlineColor: Cesium.Color.WHITE,
outlineWidth: 3,
},
});
viewer.entities.add(point1);
//默认 fill=true, outline=false,
2.获取实体
viewer.entities.getById("pn")//pn为实体的id
3.修改实体
viewer.entities.getById("pn").point.color = Cesium.Color.PINK
4.删除实体
viewer.entities.removeById("pn")
5.判断id对应实体、实体是否存在
let en = viewer.entities.getOrCreateEntity(point1)//如果该 id 对应的实体不存在,则将其添加到集合中
console.log(en)
const isExist = viewer.entities.contains(en)//通过 contains 判断实体是否存在,则返回true,否则返回false
6.性能优化 (未)
在批量添加或修改实体时,可以使用viewer.entities.suspendEvents()
和viewer.entities.resumeEvents()
方法来提高性能
// 暂停事件处理
viewer.entities.suspendEvents();
// 执行批量更新
for (let i = 0; i < 1000; i++) {
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(Math.random() * 360 - 180, Math.random() * 180 - 90),
point: {
pixelSize: 10,
color: Cesium.Color.RED,
},
});
}
// 恢复事件处理
viewer.entities.resumeEvents();
viewer.entities.suspendEvents()
和 viewer.entities.resumeEvents()
这两个方法只能用于暂停和恢复 Cesium 实体集合的事件处理。它们只能用于控制与实体相关的事件,不能用于控制场景中其他元素的事件。