剖切分析插件
剖切分析插件
剖切是指在场景中,我们使用拾取面或者Z平面,对建筑图层进行切分,以便于观察其内部结构和细节。
也可以通过调整剖切面的位置和角度,来观察建筑的不同部分。
1. 功能说明
剖切分析插件主要有4个功能:剖切、排除、反向和重置。
1.1 剖切
使用拾取面或者Z平面对建筑图层进行剖切操作,得到剖切面和剖切图层。
1.2 排除
为了简化观察,我们可以点击剖切图层上不需要的子图层进行排除操作,汇总的子图层集合即是排除图层。
1.3 反向
在剖切过程中我们可以得到切片平面(剖切图层)和非切片平面,这两者可以使用反向操作互换。
1.4 重置
对于已经剖切的平面可以一键清除剖切效果,回复到未剖切前的效果。
2. 构造
在SDK中实例化剖切分析插件,代码示例如下:
const slicePlugin = new ubm.SlicePlugin()
3. 属性
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
| sliceType | string | --- | 剖切类型 |
| handleType | string | --- | 操作类型 |
| excludedLayers | ILayer[] | --- | 排除图层列表 |
3.1 剖切类型
剖切类型有以下两种:
| 值 | 说明 |
|---|---|
| snap | 拾取面 |
| vertical | Z平面 |
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
当操作类型handleType为exclude时,调用排除方法exclude()。
代码示例如下:
// 执行排除操作
if(slicePlugin.model.handleType === 'exclude'){
slicePlugin.model.exclude()
}
4.4 反向剖切
reverse(): void
当操作类型handleType为reverse时,调用反向方法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
