//业务监测点
|
|
|
//业务监测点id列表
|
let _logicMonitorIds = new Set();
|
|
//设置业务监测点
|
function setLogicMonitors(data) {
|
initialMarker3dContainer();
|
clearLogicMonitors();
|
if (data == null || data.length < 1) {
|
return;
|
}
|
data.forEach(item => {
|
let marker3d = createLogicMonitor(item);
|
let logicMonitorId = marker3d.getId();
|
_logicMonitorIds.add(logicMonitorId);
|
_marker3dContainer.addItem(marker3d);
|
});
|
_viewer.render();
|
}
|
|
//添加业务监测点
|
function addLogicMonitor(item) {
|
let marker3d = createLogicMonitor(item);
|
if (marker3d == null) {
|
return;
|
}
|
var logicMonitorId = marker3d.getId();
|
_logicMonitorIds.add(logicMonitorId);
|
_marker3dContainer.addItem(marker3d);
|
_viewer.render();
|
}
|
|
//创建业务监测点
|
function createLogicMonitor(item) {
|
let marker3dConfig = new Glodon.Bimface.Plugins.Marker3D.Marker3DConfig();
|
marker3dConfig.viewer = _viewer;
|
marker3dConfig.src = "../imgs/" + item.propName + ".png";
|
if (item.propName == "CalcuPress") {
|
marker3dConfig.src = _base64_monitor.CalcuPress;
|
}
|
else if (item.propName == "CalcuHead") {
|
marker3dConfig.src = _base64_monitor.CalcuHead;
|
}
|
else if (item.propName == "CalcuDemand") {
|
marker3dConfig.src = _base64_monitor.CalcuDemand;
|
}
|
else if (item.propName == "CalcuFlow") {
|
marker3dConfig.src = _base64_monitor.CalcuFlow;
|
}
|
else if (item.propName == "CalcuVelocity") {
|
marker3dConfig.src = _base64_monitor.CalcuVelocity;
|
}
|
else if (item.propName == "CalcuHeadLoss") {
|
marker3dConfig.src = _base64_monitor.CalcuHeadLoss;
|
}
|
else if (item.propName == "CalcuQ") {
|
marker3dConfig.src = _base64_monitor.CalcuQ;
|
}
|
else if (item.propName == "CalcuPr") {
|
marker3dConfig.src = _base64_monitor.CalcuPr;
|
}
|
else if (item.propName == "CalcuH") {
|
marker3dConfig.src = _base64_monitor.CalcuH;
|
}
|
else if (item.propName == "CalcuP") {
|
marker3dConfig.src = _base64_monitor.CalcuP;
|
}
|
else if (item.propName == "CalcuE") {
|
marker3dConfig.src = _base64_monitor.CalcuE;
|
}
|
let boundingBox = _modeler.getBoundingBoxById(item.id);
|
let boundingBoxMin = boundingBox.min;
|
let boundingBoxMax = boundingBox.max;
|
marker3dConfig.worldPosition = {
|
x: (boundingBoxMin.x + boundingBoxMax.x) / 2,
|
y: (boundingBoxMin.y + boundingBoxMax.y) / 2,
|
z: (boundingBoxMin.z + boundingBoxMax.z) / 2 + 30
|
};
|
marker3dConfig.objectId = item.id;
|
marker3dConfig.tooltip = item.description;
|
marker3dConfig.id = getLogicMonitorId(item);
|
let marker3d = new Glodon.Bimface.Plugins.Marker3D.Marker3D(marker3dConfig);
|
return marker3d;
|
}
|
|
//移除业务监测点
|
function removeLogicMonitor(item) {
|
if (_logicMonitorIds.size > 0) {
|
let logicMonitorId = getLogicMonitorId(item);
|
_logicMonitorIds.delete(logicMonitorId);
|
_marker3dContainer.removeItemById(logicMonitorId);
|
_viewer.render();
|
}
|
}
|
|
//清除业务监测点
|
function clearLogicMonitors() {
|
if (_marker3dContainer == null) {
|
return;
|
}
|
if (_logicMonitorIds.size > 0) {
|
_logicMonitorIds.forEach(x => _marker3dContainer.removeItemById(x));
|
_logicMonitorIds.clear();
|
_viewer.render();
|
}
|
}
|
|
//获取业务监测点id
|
function getLogicMonitorId(item) {
|
return "LogicMonitor" + item.id + item.propName;;
|
}
|