cesium教程(八):Entity API-高度和挤压,管理实体

Cesium是一款开源的、高性能的3D地球和地图可视化平台,它允许开发者创建基于Web的、交互式的地理空间应用程序。

cesium教程(八):Entity API-高度和挤压,管理实体

Cesium的核心是一个WebGL驱动的引擎,能够渲染大规模的地理数据集,支持高精度的地球模型和动态数据可视化。以下是一个Cesium的详细教程,分为多个章节。

3D模型在线预览提供多种低代码平台3D模型在线预览解决方案,实现了将多种3D模型格式无缝集成到低代码业务表单中。这意味着用户可以在不离开低代码平台的情况下,直接查看和操作3D模型,极大地提升了数据可视化的效果和用户交互体验。

高度 height 和 挤压extrudedHeight

平面形状包括corridorellipsepolygonrectangles 可以放置在高处或挤压成一个立方体。在这两种情况下,仍符合 WGS84 椭球的曲率。

  • 在相应的图形对象上设置 height 属性(距离地面的高度),以米为单位。
  • 要将平面图形转为立方体,请设置 extrudedHeight 属性(拉伸后的面距离地面的拉伸高度)

立方体将在height extrudedHeight之间创建(实际物体的高是 extrudedHeight - height。如果height undefined,则体积从 0 开始。

创建一个从 200,000 米开始并延伸到 250,000 米的立方体。

管理实体

EntityCollection 是用于管理和监视一组实体的关联数组。 viewer.entities 是一个 EntityCollectionEntityCollection 包括诸如 add, removeremoveAll 等用于管理实体的方法。

新增

有时我们需要更新我们之前创建的实体。所有实体实例都有一个唯一的 ,可用于从集合中检索实体。我们可以指定一个 ID,否则会自动生成一个。

获取实体或创建一个新实体(如果它不存在),请使用 getOrCreateEntity

手动创建一个新实体并使用add将其添加到集合中。如果集合中已存在具有相同id的实体,将引发报错

查询/获取

使用getById检索实体。如果不存在具有所提供 ID 的实体,则返回undefined。

删除

变化

EntityCollection的强大之处在于:使用 collectionChanged 事件。这会在集合中添加、删除或更新实体时通知侦听器

运行示例时,您应该在控制台中看到大约 65 条消息,每次调用viewer.entities.add 时都会显示一条 消息。

当一次更新大量实体时,将更改排队并在最后发送一个大事件会更高效。通过这种方式,cesium 可以一次性处理所需的更改。

viewer.entities.add 前使用 viewer.entities.suspendEvents 暂停触发 collectionChanged 事件,添加结束后使用 viewer.entities.resumeEvents 发送一个大事件

我们现在得到一个包含所有 65 个实体的事件。这些调用是引用计数的,因此可以嵌套多个挂起和恢复调用。

cesium教程 - 索引

cesium教程(一):创建cesium应用

cesium教程(二):Viewer、Scene、影像

cesium教程(三):地形、坐标

cesium教程(四):相机

cesium教程(五):追踪、交互

cesium教程(六):Entity API-几何种类

cesium教程(七):Entity API-材质和轮廓

cesium教程(八):Entity API-高度和挤压,管理实体

cesium教程(九):Entity API-实体交互

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号