视点书签插件

可以对一个特定的视角场景保存为一个标签,默认以生成标签的时间点命名,点击生成的不同标签可以进行不同的视角场景切换。

1. 加载

代码示例如下:

// 1、定义视点书签数据集
let viewPointData = []
// 2、定义视点书签插件
const viewPointPlugin = new ubm.ViewPointPlugin({
  // 2.1、是否自定义数据
  isCustomData: true,
  // 2.2、新增视点标签的回调函数
  onAdd(data) {
    viewPointData.push(data)
    viewPointPlugin.data = viewPointData
    console.log(data);
  },
  // 2.3、删除视点标签的回调函数
  onDelete(data) {
    console.log(data);
  },
})
// 3、给场景注册视点书签插件
scene.plugin.register(viewPointPlugin)

1.1 定义视点书签数据集

export interface ViewPointItem {
  // ID
  id?: number
  // 视图编码,仅用于排序
  view_code: number
  // 视图名称
  view_name: string
  // 视图名称
  view_img: string
  // 相机中心点坐标X
  camera_x: number
  // 相机中心点坐标Y
  camera_y: number
  // 相机中心点坐标Z
  camera_z: number
  // 相机俯仰角
  camera_pitch: number
  // 相机偏航角
  camera_yaw: number
}

1.2 定义视点书签插件

视点书签中需要定义插件的属性isCustomData和功能函数onAdd&onDelete

1.2.1 是否自定义数据

属性isCustomData,默认为true

如果设置为false,则不需要定义函数onAdd&onDelete

1.2.2 新增视点标签的回调函数

点击新建视点按钮,会生成一个视点标签数据,调用函数onAdd,可回调获取当前的视点标签数据

需把获取的场景数据加入到定义好的视点书签数据集,然后赋值给插件里的data进行视点书签显示。

1.2.3 删除视点标签的回调函数

选中某个视点标签,点击删除按钮,会删除当前视点标签,调用函数onDelete,可获取当前删除的视点标签数据data

1.3 给场景注册视点书签插件

viewPointPlugin插件registerscene

2. 扩展使用

2.1 视点标签动画

功效: 可以传递多个不同场景的视点标签进行动态切换

代码示例如下:

viewPointPlugin.animate(viewPoints: ViewPointItem[], animateOption?: AnimateOptions)
  • viewPoints: 视点数据, 同上定义的视点书签数据集
  • option: 动画选项,默认为{},也可不定义