素材资源插件
素材资源指的是用于在SDK场景中创建的资源,如:建筑、车、飞机等。
素材资源插件
素材资源指的是用于在SDK场景中创建的资源,如:建筑、车、飞机等。
其主要用于帮助用户进行地图制作和地理数据分析。
1. 功能说明
素材资源插件主要功能:根据地图数据,创建资源,并支持对资源进行删除、移动等操作。
2. 构造
在SDK中实例化素材资源插件,代码示例如下:
const sourceMaterialPlugin = new ubm.SourceMaterialPlugin(properties)
在插件初始化时,可以设置素材资源插件的配置参数,代码示例如下:
const sourceMaterialPlugin = new ubm.SourceMaterialPlugin({
// 是否添加面板
isCreateview: true,
// 是否数据自定义
isCustom: true,
// 自定义素材资源数据
customMaterialArr: [
{
id: 1,
name: '建筑1',
cover: 'https://dtbim.cn/example-img.png',
src: 'https://cdn.hb6oss.xstore.ctyun.cn/assets/building_futuristic.glb',
catalog: '建筑',
sequence: 15
},
{
id: 2,
name: '车1',
cover: 'https://dtbim.cn/example-img.png',
src: 'https://static.arcgis.com/arcgis/styleItems/RealisticTransportation/gltf/resource/Dumptruck.glb',
catalog: '车',
sequence: 1
},
{
id: 3,
name: ' 飞机1',
cover: 'https://dtbim.cn/example-img.png',
src: 'https://cdn.hb6oss.xstore.ctyun.cn/assets/airplane.glb',
catalog: '飞机',
sequence: 1
}
]
})
其中属性列表properties说明如下:
| 属性 | 类型 | 说明 |
|---|---|---|
| isCreateview | string | 是否添加面板 |
| isCustom | string | 是否数据自定义 |
| customMaterialArr | IMaterialObj[] | 自定义素材资源数据 |
| hasZ | boolean | 是否有Z值 |
| spatialReference | string | 空间参考系:4326或3857 |
数据类型IMaterialObj中,其单项的数据结构如下所示:
interface IMaterialObj {
// 标识
id: number | string,
// 名称
name: string
// 封面
cover: string
// 源地址
src: string
// 分类
catalog: string
//排序
sequence: number
}
3. 属性
| 属性 | 类型 | 可选 | 说明 |
|---|---|---|---|
| size | number[] | undefined[] | --- | 素材大小 |
| rotate | number[] | undefined[] | --- | 素材旋转角度 |
| color | string | --- | 素材颜色 |
| materialArr | IMaterialObj[] | --- | 素材数据列表 |
3.1 素材大小
可设置素材大小,即长宽比,代码示例如下:
sourceMaterialPlugin.model.size = [100, 100, 100]
3.2 素材旋转角度
可设置素材旋转角度,即xyz轴旋转角度,代码示例如下:
sourceMaterialPlugin.model.rotate = [90, 120, 0]
3.3 素材颜色
可设置素材颜色,代码示例如下:
sourceMaterialPlugin.model.color = "#000000"
3.4 素材数据信息
获取素材数据信息,代码示例如下:
const res = sourceMaterialPlugin.model.materialArr
4. 方法
| 方法 | 说明 |
|---|---|
| startDrawing() | 开启素材绘制 |
| materialDelete() | 删除选中的素材资源 |
| materialDeleteAll() | 删除全部的素材资源 |
4.1 开启素材绘制
getStructureData(materialSrc: string): void
参数materialSrc:素材资源路径。
在当前视图场景中开启素材绘制,代码示例如下:
sourceMaterialPlugin.view.startDrawing('https://cdn.hb6oss.xstore.ctyun.cn/assets/building_futuristic.glb')
方法getStructureData()的本质其实就是在场景中设置素材,即方法setSymbol(),所以另一种写法如下所示:
// 设置素材资源路径
sourceMaterialPlugin.model.url="https://cdn.hb6oss.xstore.ctyun.cn/assets/building_futuristic.glb"
// 设置素材样式(大小和颜色),默认都取素材自身的样式,也可以单独设置。
sourceMaterialPlugin.model.setSymbol()
// 创建素材
sourceMaterialPlugin.model.materialCreate('point')
4.2 删除选中的素材资源
materialDelete(): void
在当前场景中删除选中的素材资源,代码示例如下:
sourceMaterialPlugin.model.materialDelete()
4.3 删除全部的素材资源
materialDeleteAll(): void
删除当前场景中的全部素材资源,代码示例如下:
sourceMaterialPlugin.model.materialDeleteAll()

BIMFlux AI
