自定义DOM标签

在场景中,我们可以创建自定义的DOM标签,用于在场景中展示一些自定义的DOM内容,以增强用户体验。

自定义DOM标签

在场景中,我们可以创建自定义的DOM标签,用于在场景中展示一些自定义的DOM内容,以增强用户体验。

自定义 DOM 标签是指开发者根据需求创建的 HTML 元素(如:

),并通过 CSS 和 JavaScript 对其进行样式化和功能绑定。

1. 功能说明

可以通过操作DOM来动态添加、修改或删除DOM标签。

2. 构造

new DynamicDom(properties)

代码示例如下:

const divLabel = new ubm.DynamicDom({
    scene, // 必填:场景
    // 位置点的方位
    alignment: 'top-center',
    //位置信息点
    location: {
      latitude: 39.91276366941874,
      longitude: 116.39103281819857,
      z: 0,
    },
    //在此位置的DOM
    content,
    //DOM大小
    width: 50,
    height: 50
})

传递给构造函数DynamicDom的所有属性列表properties可查看后续属性说明。

3. 属性

属性类型可选说明
sceneIScene必填场景
alignmentstring必填位置点方位
locationIPoint必填位置信息点
contentstring | HTMLElement必填此位置的DOM
widthnumber必填宽度
heightnumber必填高度

3.1 位置点方位

属性alignment表示,相对于所放在位置点location的具体方位,共有以下几个:

说明
auto自动
top-center顶部中间
top-left顶部左侧
top-right顶部右侧
bottom-center底部中间
bottom-left底部左侧
bottom-right底部右侧

3.2 位置信息点

属性location表示DynamicDom在场景上的具体地理位置坐标。

其中类型IPoint的数据结构如下:

interface IPoint {
  latitude: number
  longitude: number
  z: number
}

3.3 此位置的DOM

属性content表示自定义的dom。

如:创建一个动态坐标点,代码如下:

const content = document.createElement('div')
content.innerHTML = `<img src="https://cdn.hb6oss.xstore.ctyun.cn/assets/poi.gif" alt="" >`

4. 方法

方法说明
create()创建
updatePosition()更新标签的位置
destory()销毁

4.1 创建

create(options: properties): void

创建DOM标签,代码示例如下:

divLabel.create({
    scene, // 必填:场景
    // 位置点的方位
    alignment: 'top-center',
    //位置信息点
    location: {
      latitude: 39.91276366941874,
      longitude: 116.39103281819857,
      z: 0,
    },
    //在此位置的DOM
    content,
    //DOM大小
    width: 50,
    height: 50
})

4.2 更新标签的位置

updatePosition(location: IPoint): void

更新DOM标签的位置,代码示例如下:

divLabel.updatePosition({
    latitude: 39.91876766941874,
    longitude: 116.39103281819857,
    z: 0,
})

4.3 销毁

destory(): void

销毁DOM标签,代码示例如下:

divLabel.destory()

BIMFlux AI