1. 二维带连线标签 DOM MARK
1.1. 属性
1.1.1. this.marks 所有 mark 的信息,用 mark 的 id 来唯一标识
1.1.2. this.allOids 所有 mark 的 id 的集合,数组形式
1.2. 方法
1.2.1. add
添加标签
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
option | 标签信息 | object | 是 | 见下表 |
option.id | 标签 id | string | 否 (默认 随机字符串) | "123" |
option.title | 标签 title | string | 否 (默认"标签") | "标题" |
option.draggable | 标签 title 是否允许拖拽 | Boolean | 否 (默认 true) | true |
option.bodyDraggable | 标签整体是否允许拖拽 | Boolean | 否 (默认 false) | true |
option.color | mark 填充的颜色 | array | 否 (默认[255,0,0]) | [255,255,255] |
option.colorLine | mark 线条的颜色 | array | 否 (默认[0,0,0]) | [255,255,255] |
option.startPosition | mark 起点所跟随的三维空间的世界坐标 | array | 否 (默认[0,0,0]) | [1000,1000,1000] |
option.endPosition | mark 图标主体所处的屏幕坐标 | array | 否 (默认[0,0]) | [255,255] |
option.domElement | mark 中要添加的 dom 元素 | dom | 否 (默认 null) | document.createElement("div"); |
option.componentId | 该 mark 关联的构件 key | string | 否 (默认"") | "M123_456"; |
option.mode | mark 的模式,absolute 模式会忽略 offset 参数,并设置为[0,0],mark 的位置由 endPosition 决定。relative 模式会忽略 endPosition 参数并设置为[0,0],mark 的位置由 startPosition 对应的屏幕坐标加 offset 参数决定。 | string 枚举类型,可选项:absolute、relative | 否 (默认"absolute") | "absolute" |
option.offset | mark 的偏离量 | array | 否 默认[0,0] | [100,100] |
option.showPoint | 是否显示连接线的端点 | Boolean | 否 (默认 true) | true |
option.showLine | 是否显示连接线 | Boolean | 否 (默认 true) | true |
option.showTitle | 是否显示 title | Boolean | 否 (默认 true) | true |
option.show | 是否显示标签 | Boolean | 否 (默认 true) | true |
callback | 回调方法 | function | 否 | 见调用方法 |
/**
* 该方法用来添加mark
* @function add
* @param [options] {Object} 构建mark的参数
* @param [options.id] {String} mark图标的id (默认随机生成)
* @param [options.title] {String} mark图标的title (默认:mark)
* @param [options.draggable] {Boolean} mark图标title是否允许拖拽 (默认为true)
* @param [options.bodyDraggable] {Boolean} mark图标整体是否允许拖拽 (默认为false)
* @param [options.color]{array} mark填充的颜色 默认[255,0,0]
* @param [options.colorLine]{array} mark线条的颜色 默认 colorLine:[0,0,0],
* @param [options.startPosition]{array} mark起点所跟随的三维空间的世界坐标。 默认[0,0,0]
* @param [options.endPosition]{array} mark图标主体所处的屏幕坐标,默认[0,0]
* @param [options.domElement]{domElement} mark中要添加的dom元素
* @param [options.componentId]{string} 该mark关联的构件key
* @param [options.mode]{string} mark的模式
* @param [options.offset]{array} mark的偏移
* @param [options.showPoint]{Boolean} 是否显示连接线的端点,默认true
* @param [options.showLine]{Boolean} 是否显示连接线,默认true
* @param [options.showTitle]{Boolean} 是否显示title,默认true
* @param [options.show]{string} 是否显示标签 ,默认true
* @param callback {function} 完成添加的回调函数 参数为所创建的mark的id
*/
//调用方法:
var domMark = new BOS3D.DOMMark(viewer3D);
var domElement = document.createElement("div");
domElement.textContent = "墙壁";
var options = {
id: "123",
title: "mark",
color: [99, 99, 99],
colorLine: [0, 0, 0],
startPosition: [3000, -1850, 2000],
endPosition: [800, 200],
domElement: domElement,
offset: [0, 0],
};
domMark.add(options, function (a) {
alert(a);
});
1.2.2. updateMark
该方法用来更新 mark
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
node | 标签 id | string | 是 | “123” |
options | 标签信息 | object | 是 | 见调用方法 |
option.id | 标签 id | string | 否 (默认 随机字符串) | "123" |
option.title | 标签 title | string | 否 (默认"标签") | "标题" |
option.draggable | 标签 title 是否允许拖拽 | Boolean | 否 (默认 true) | true |
option.bodyDraggable | 标签整体是否允许拖拽 | Boolean | 否 (默认 false) | true |
option.color | mark 填充的颜色 | array | 否 (默认[255,0,0]) | [255,255,255] |
option.colorLine | mark 线条的颜色 | array | 否 (默认[0,0,0]) | [255,255,255] |
option.startPosition | mark 起点所跟随的三维空间的世界坐标 | array | 否 (默认[0,0,0]) | [1000,1000,1000] |
option.endPosition | mark 图标主体所处的屏幕坐标 | array | 否 (默认[0,0]) | [255,255] |
option.domElement | mark 中要添加的 dom 元素 | dom | 否 (默认 null) | document.createElement("div"); |
option.componentId | 该 mark 关联的构件 key | string | 否 (默认"") | "M123_456"; |
option.mode | mark 的模式,absolute 模式会忽略 offset 参数,并设置为[0,0],mark 的位置由 endPosition 决定。relative 模式会忽略 endPosition 参数并设置为[0,0],mark 的位置由 startPosition 对应的屏幕坐标加 offset 参数决定。 | string 枚举类型,可选项:absolute、relative | 否 (默认"absolute") | "absolute" |
option.offset | mark 的偏离量 | array | 否 默认[0,0] | [100,100] |
option.showPoint | 是否显示连接线的端点 | Boolean | 否 (默认 true) | true |
option.showLine | 是否显示连接线 | Boolean | 否 (默认 true) | true |
option.showTitle | 是否显示 title | Boolean | 否 (默认 true) | true |
/**
* 该方法用来更新mark,参数的默认值和添加mark时的参数一致
* @function updateMark
* @param node {String} mark的id
* @param [options] {Object} 构建mark的参数
* @param [options.title] {String} mark图标的title (默认:mark)
* @param [options.draggable] {Boolean} mark图标是否允许拖拽 (默认为true)
* @param [options.color]{array} mark填充的颜色 默认[255,0,0]
* @param [options.colorLine]{array} mark线条的颜色 默认 colorLine:[0,0,0],
* @param [options.startPosition]{array} mark起点所跟随的三维空间的世界坐标。 默认[0,0,0]
* @param [options.endPosition]{array} mark图标主体所处的屏幕坐标,默认[0,0]
* @param [options.domElement]{domElement} mark中要添加的dom元素
* @param [options.componentId]{string} 该mark关联的构件key
* @param [options.mode]{string} mark的模式
* @param [options.offset]{array} mark的偏移
* @param [options.showPoint]{Boolean} 是否显示连接线的端点,
* @param [options.showLine]{Boolean} 是否显示连接线,
* @param [options.showTitle]{Boolean} 是否显示title,
* @param callback {function} 完成添加的回调函数 参数为所创建的mark的id
*/
//调用方法:
var domMark = new BOS3D.DOMMark(viewer3D);
var domElement = document.createElement("div");
domElement.textContent = "墙壁";
var id = "123";
var options = {
id: "123",
title: "mark",
color: [99, 99, 99],
colorLine: [0, 0, 0],
startPosition: [3000, -1850, 2000],
endPosition: [800, 200],
domElement: domElement,
};
domMark.updateMark(id, options);
1.2.3. updateColor
该方法用来更新 mark 的填充颜色
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
nodes | 标签 id 或 id 数组 | String 或 Array | 是 | ["123","1234"] |
color | 标签填充色 | String 或 Array | 是 | [0,0,0] |
/**
* 该方法用来更新mark的填充颜色
* @function updateColor
* @param nodes {String || Array} mark的id或id数组
* @param color {String || Array} 颜色 [0,0,0]、'#000000'或'rgb(0,0,0)'
*/
//调用方法:
domMark.updateColor(["123", "1234"], "rgb(0,0,0)");
1.2.4. updateTitle
该方法用来更新 mark 的标题
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
nodes | 标签 id 或 id 数组 | String 或 Array | 是 | ["123","1234"] |
title | 标签标题 | String | 否 | "mark" |
/**
* 该方法用来更新mark的标题
* @function updateTitle
* @param nodes {String || Array} mark的id或id数组
* @param nodes {String} mark的标题,若为空或空字符串,则删除标题
*/
//调用方法:
domMark.updateTitle(["123", "1234"], "瓦片");
1.2.5. updateDomElement
该方法用来更新 mark 的 dom 元素
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
node | 标签 id | String | 是 | "123" |
domElement | dom 原素 | {element} | 否 | 见调用方法 |
/**
* 该方法用来更新mark的dom元素
* @function updateDomElement
* @param node {string} mark的id
* @param domElement dom元素,若不设置则删除原有dom原素
*/
//调用方法:
var domElement = document.createElement("div");
domElement.textContent = "墙壁";
domMark.updateDomElement("123", domElement);
1.2.6. remove
方法用来将 mark 销毁
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
nodes | 标签 id 或 id 数组 | String 或 Array | 是 | ["123","1234"] |
/**
* 该方法用来将mark销毁
* @function remove
* @param nodes {String || Array} mark的id或id数组
*/
//调用方法:
domMark.remove(["123", "1234"]);
1.2.7. hide
该方法用来将 mark 隐藏
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
nodes | 标签 id 或 id 数组 | String 或 Array | 是 | ["123","1234"] |
/**
* 该方法用来将mark隐藏
* @function hide
* @param nodes {String || Array} mark的id或id数组
*/
//调用方法:
domMark.hide(["123", "1234"]);
1.2.8. show
该方法用来将隐藏的 mark 显示
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
nodes | 标签 id 或 id 数组 | String 或 Array | 是 | ["123","1234"] |
/**
* 该方法用来将隐藏的mark显示
* @function show
* @param nodes {String || Array} mark的id或id数组
*/
//调用方法:
domMark.show(["123", "1234"]);
1.2.9. isolation
该方法用来将选中的 mark 隔离显示
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
nodes | 标签 id 或 id 数组 | String 或 Array | 是 | ["123","1234"] |
/**
* 该方法用来将选中的mark隔离显示
* @function isolation
* @param nodes {String || Array} mark的id或id数组
*/
//调用方法:
domMark.isolation(["123", "1234"]);
1.2.10. enablePoint
该方法用来设置辅助点的可见性
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
enable | 可见性 | 布尔值 boolean | 是 | true |
/**
* 该方法用来设置辅助点的可见性
* @function enablePoint
* @param enable {boolean} 可见性
*/
//调用方法:
domMark.enablePoint(true);
1.2.11. enableLine
该方法用来设置辅助线的可见性
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
enable | 可见性 | 布尔值 boolean | 是 | true |
/**
* 该方法用来设置辅助线的可见性
* @function enableLine
* @param enable {boolean} 可见性
*/
//调用方法:
domMark.enableLine(true);
1.2.12. enableTitle
该方法用来设置 title 的可见性
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
enable | 可见性 | 布尔值 boolean | 是 | true |
id | 标签 id | String | 否 | "123" |
/**
* 该方法用来设置title的可见性
* @function enableTitle
* @param enable {boolean} 可见性
* @param id {string} 标签id,如果不传,则操作所有的标签
*/
//调用方法:
domMark.enableTitle(true);