Cesium-(Primitive)-(BoxGeometry)

含实现代码

GISer世界
效果:

image

以下是 BoxGeometry 类的构造函数属性,以表格形式展示:

属性名 类型 默认值 描述
minimum Cartesian3 盒子的最小 x, y, 和 z 坐标。
maximum Cartesian3 盒子的最大 x, y, 和 z 坐标。
vertexFormat VertexFormat VertexFormat.DEFAULT 要计算的顶点属性。

以下是 BoxGeometry 类的静态方法和属性

Cesium 中,`PrimitiveCollection` 提供了一个方法用于移除特定的 `primitive` 对象。如果要通过 ID 删除某个 `primitive`,则需要先找到对应的对象实例再执行删除操作。以下是实现此功能的具体方式: ### 使用 `remove` 方法删除指定 Primitive Cesium 的 `PrimitiveCollection.remove(primitive)` 方法可以用来从集合中移除一个具体的 `primitive` 实例[^1]。由于该方法接受的是对象而非字符串形式的 ID,因此需要手动维护一个映射关系来关联 ID 和实际的对象。 #### 示例代码 以下是一个完整的示例,展示如何基于自定义 ID 移除相应的 `primitive`: ```javascript // 创建一个存储 primitives 映射表的对象 const primitiveIdMap = {}; function addPrimitiveById(collection, id, geometryInstance) { const newPrimitive = new Cesium.Primitive({ geometryInstances: geometryInstance, appearance: new Cesium.PerInstanceColorAppearance() }); collection.add(newPrimitive); // 将新创建的 primitive 添加到集合中 // 维护 ID 到 primitive 的映射 primitiveIdMap[id] = newPrimitive; } function removePrimitiveById(collection, id) { const targetPrimitive = primitiveIdMap[id]; // 查找对应 ID 的 primitive if (targetPrimitive && collection.contains(targetPrimitive)) { // 验证目标是否存在并属于当前集合 collection.remove(targetPrimitive); delete primitiveIdMap[id]; // 清理映射记录 } } // 测试用法 const viewer = new Cesium.Viewer('cesiumContainer'); const collection = viewer.scene.primitives; addPrimitiveById( collection, 'test-id', new Cesium.GeometryInstance({ geometry: new Cesium.BoxGeometry({ vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT, minimumCorner: Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 0), maximumCorner: Cesium.Cartesian3.fromDegrees(-70.0, 45.0, 0) }), attributes: { color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) } }) ); setTimeout(() => { removePrimitiveById(collection, 'test-id'); // 基于 ID 删除 primitive }, 5000); ``` 上述代码展示了如何向 `PrimitiveCollection` 添加带有唯一标识符的 `primitives` 并随后依据这些标识符将其安全地移除[^2]。 ### 注意事项 - 如果尝试调用 `collection.remove()` 而传入参数并非其成员,则不会引发错误但也不会有任何效果。 - 用户需自行管理 IDs 及它们所指代的实际 objects;这一步骤对于支持按 ID 操作至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纸飞机的旅行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值