cesium教程(八):Entity API-高度和挤压,管理实体
Cesium是一款开源的、高性能的3D地球和地图可视化平台,它允许开发者创建基于Web的、交互式的地理空间应用程序。
Cesium的核心是一个WebGL驱动的引擎,能够渲染大规模的地理数据集,支持高精度的地球模型和动态数据可视化。以下是一个Cesium的详细教程,分为多个章节。
3D模型在线预览提供多种低代码平台3D模型在线预览解决方案,实现了将多种3D模型格式无缝集成到低代码业务表单中。这意味着用户可以在不离开低代码平台的情况下,直接查看和操作3D模型,极大地提升了数据可视化的效果和用户交互体验。
高度 height 和 挤压extrudedHeight
平面形状包括corridor
、ellipse
、polygon
和 rectangles
可以放置在高处或挤压成一个立方体。在这两种情况下,仍符合 WGS84 椭球的曲率。
- 在相应的图形对象上设置
height
属性(距离地面的高度),以米为单位。
- 要将平面图形转为立方体,请设置
extrudedHeight
属性(拉伸后的面距离地面的拉伸高度)。
立方体将在height
和extrudedHeight
之间创建(实际物体的高是 extrudedHeight - height
)。如果height
是undefined
,则体积从 0 开始。
创建一个从 200,000 米开始并延伸到 250,000 米的立方体。
管理实体
EntityCollection
是用于管理和监视一组实体的关联数组。 viewer.entities
是一个 EntityCollection
。 EntityCollection
包括诸如 add
, remove
,removeAll
等用于管理实体的方法。
新增
有时我们需要更新我们之前创建的实体。所有实体实例都有一个唯一的 ,可用于从集合中检索实体。我们可以指定一个 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教程 - 索引