剖切分析插件

剖切是指在场景中,我们使用拾取面或者Z平面,对建筑图层进行切分,以便于观察其内部结构和细节。

剖切分析插件

剖切是指在场景中,我们使用拾取面或者Z平面,对建筑图层进行切分,以便于观察其内部结构和细节。

也可以通过调整剖切面的位置和角度,来观察建筑的不同部分。

1. 功能说明

剖切分析插件主要有4个功能:剖切、排除、反向和重置。

1.1 剖切

使用拾取面或者Z平面对建筑图层进行剖切操作,得到剖切面和剖切图层。

1.2 排除

为了简化观察,我们可以点击剖切图层上不需要的子图层进行排除操作,汇总的子图层集合即是排除图层。

1.3 反向

在剖切过程中我们可以得到切片平面(剖切图层)和非切片平面,这两者可以使用反向操作互换。

1.4 重置

对于已经剖切的平面可以一键清除剖切效果,回复到未剖切前的效果。

2. 构造

在SDK中实例化剖切分析插件,代码示例如下:

const slicePlugin = new ubm.SlicePlugin()

3. 属性

属性类型可选说明
sliceTypestring---剖切类型
handleTypestring---操作类型
excludedLayersILayer[]---排除图层列表

3.1 剖切类型

剖切类型有以下两种:

说明
snap拾取面
verticalZ平面

3.2 操作类型

操作类型有以下两种:

说明
exclude排除
reverse反向

可对参数进行赋值,代码示例如下:

// 设置参数`handleType`为`exclude`
slicePlugin.model.handleType = 'exclude'

3.3 排除图层列表

排除图层列表excludedLayers,是来自排除操作所产生的子图层集合,默认为[]。

4. 方法

方法说明
init()初始化
start()开始剖切
exclude()排除图层
reverse()反向剖切
reset()重置
getShape()获取剖切面信息
setShape()设置剖切面

4.1 初始化

init(): void

剖切初始化,代码示例如下:

slicePlugin.model.init()

4.2 开始剖切

start(type: string): void

参数type是剖切类型sliceType

当参数param不为剖切类型时,返回return

代码示例如下:

// 开始以Z平面来剖切
slicePlugin.model.start('vertical')

4.3 排除图层

exclude(): void

当操作类型handleTypeexclude时,调用排除方法exclude()

代码示例如下:

// 执行排除操作
if(slicePlugin.model.handleType === 'exclude'){
    slicePlugin.model.exclude()
}

4.4 反向剖切

reverse(): void

当操作类型handleTypereverse时,调用反向方法reverse()

代码示例如下:

// 执行反向操作
if(slicePlugin.model.handleType === 'reverse'){
    slicePlugin.model.reverse()
}

4.5 重置

reset(): void

当操作类型handleType为空时,调用重置方法reset()

代码示例如下:

// 执行重置操作
if(slicePlugin.model.handleType === ''){
    slicePlugin.model.reset()
}

4.6 获取剖切面信息

getShape(): void

使用方法getShape获取场景模型中的剖切面信息,代码示例如下:

slicePlugin.model.getShape()

4.7 设置剖切面

setShape(data: IShapeData): void

参数data的数据类型IShapeData的数据结构如下:

interface IShapeData {
  position: {
    latitude: number,
    longitude: number,
    z: number,
  },
  spatialReference?: 3857 | 4326,
  width: number,
  height: number,
  tilt: number,
  heading: number,
}

使用方法setShape设置场景初始化加载已剖切的模型,代码示例如下:

slicePlugin.model.setShape({
    position: {
      latitude: 39.90765924275206,
      longitude: 116.39190570537997,
      z: 5
    },
    spatialReference: 102100,
    width: 45,
    height: 45,
    tilt: 45,
    heading: 2
})

BIMFlux AI