素材资源插件

素材资源指的是用于在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说明如下:

属性类型说明
isCreateviewstring是否添加面板
isCustomstring是否数据自定义
customMaterialArrIMaterialObj[]自定义素材资源数据
hasZboolean是否有Z值
spatialReferencestring空间参考系:4326或3857

数据类型IMaterialObj中,其单项的数据结构如下所示:

interface IMaterialObj {
  // 标识
  id: number | string,
  // 名称
  name: string
  // 封面
  cover: string
  // 源地址 
  src: string
  // 分类
  catalog: string
  //排序
  sequence: number
}

3. 属性

属性类型可选说明
sizenumber[] | undefined[]---素材大小
rotatenumber[] | undefined[]---素材旋转角度
colorstring---素材颜色
materialArrIMaterialObj[]---素材数据列表

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