[TOC]
查阅网上文章得知实现控高分析涉及ClassificationPrimitive(不懂中文怎么翻译它,暂叫基元吧), CallbackProperty 这两个关键类,前者是一个分类基元,表示要在场景中突出显示的包围几何体的体积(分析中指定高度以外建筑的高亮效果)。后者是一个特殊属性,它的值由调用异步函数获取,可动态变化(在此分析中实现指定高度以内建筑高亮效果以及高度面变化)。
整理分析操作流程如下:
- 绘制一个范围面。
- 创建一个ClassificationPrimitive(基元)对象表示区域内高度超限,及两个几何面Entity (实体)对象,其中一个Entity设置为贴地且分类属性设置为3DTiles表示区域内高度不超限,另一个不贴地,表示高度面。
- 修改高度,两个Entit拉伸高度以及基元位置同步变化。
Entity实现拉伸高度变化比较容易,但ClassificationPrimitive位置动态变化无法借助CallbackProperty,而是直接修改位置矩阵,有个问题是,必须要给基元拉伸高度设置一个很高的高度值,以至于能够覆盖最高的建筑。