Cesium获取BIM模型整栋与每一层的高度信息

原因

最近因为有这样的需求,但是BIM模型内部又没有Height的高度字段,因此只能通过加载模型中的包围盒去获取整栋及每一层之间的高度。记录一下。

缺点

获取的层的高度并不是每一层刚好开始的高度,而是包围盒此时的高度,应该是在层的中间

代码

获取整一幢BIM模型的高度

const cartographic= Cesium.Ellipsoid.WGS84.cartesianToCartographic(tileset.boundingSphere.center);
const height = cartographic.height;

获取每一层的高度

获取每一层的高度,需要BIM模型这个数据就是有层的数据的,否则也是不行

if (tileset) {
  const len = tileset._selectedTiles.length;//BIM模型的层数
  const tile = tileset._selectedTiles[len - Number(用户选择的层数)];//这里需要倒着减,具体符不符合需要根据实际的数据情况
  const carto = Cesium.Cartographic.fromCartesian(
    tile._content._tile.boundingSphere.center
    );
const height = carto.height;
}
posted @ 2022-11-16 21:46  百年内必成大牛  阅读(313)  评论(0编辑  收藏  举报