JavaScript SDK版本3.6.157
2021-09-17
// 构造可视域对象的配置项
let viewshedConfig = new Glodon.Bimface.Analysis.Viewshed.Viewshed3DConfig();
// 设置隐藏可视域对象的视锥框线
viewshedConfig.frustumVisible = false;
// 设置可视域分析的观察点、方向、距离等
viewshedConfig.position = { x: 378009.9204790529, y: -8583.420964820874, z: 7546.564179268196 };
viewshedConfig.direction = { x: -0.9, y: -0.10, z: 0.05 };
viewshedConfig.distance = 6000;
viewshedConfig.horizontalFov = Math.PI / 4;
viewshedConfig.verticalFov = Math.PI / 8;
// 构造可视域对象
let viewshed = new Glodon.Bimface.Analysis.Viewshed.Viewshed3D(viewshedConfig);
// 获取可视域对象视锥框线的显示状态,并在控制台输出
console.log(viewshed.isFrustumVisible());
// 显示可视域分析的视锥框线
viewshed.setFrustumVisible(true);
// 获取Viewer3D场景下的相机对象
let camera = viewer.getCamera();
// 获取相机视点
let cameraStatus = camera.getStatus();
// 构造包围盒对象
let min = {
x: -34792.9,
y: 81040.5,
z: 0
}
let max = {
x: -14914.0,
y: 98620.5,
z: 0
}
let boundingBox = {
min,
max
};
// 定义文本数组
let text = [];
// 定义获取文本的参数对象
let option = {
boundingBox: boundingBox
};
// 根据包围盒获取文本,默认按照y方向的位置降序排列,若y方向的位置相同(考虑一定的容差),则按照x方向升序排列
viewer2D.getTextByBoundingBox(option, getText);
function getText(data) {
for (i = 0; i < data.length; i++) {
let item = data[i].content;
text.push(item);
console.log(text);
}
}
// 根据图层ID获取图元ID的数组
let layerId = 26436;
let elementIds = viewer2D.getElementsByLayerId(layerId);
let textArr = [];
for (let i = 0; i < elementIds.length; i++) {
let textId = elementIds[i];
let getContent = function (data) {
let text = data;
if (text.length > 0) {
textArr.push(...text);
}
}
// 根据文本图元ID获取文本内容
viewer2D.getTextById(textId, getContent);
};
console.log(textArr);
// 获取选中集合中的图元ID数组
viewer2D.getSelectedElements();
// 获取外部参照文件
viewer2D.getExternalReferences(id, successCallback, failureCallback)
function successCallback(data){
// 读取外部参照信息
externalReference = data
// 获取外部参照信息中的坐标变换矩阵
modelTransformation = externalReference[0].items[0].transformation
}
function failureCallback(error){
console.log(error)
}
// 坐标变换
// 设置坐标变换矩阵
let modelTransformation = [6.123233995736766e-17, 1.0, 0.0, 0.0, -1.0, 6.123233995736766e-17, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0]
// 依据坐标变换矩阵,对指定图纸进行坐标变换
viewer2D.setModelTransformation(id, modelTransformation)
// 获取指定图纸布局信息
viewer2D.getViews(id)
BIMFACE智能客服
7*24提供专业的BIMFACE使用支持与帮助