JavaScript SDK版本3.6.157

2021-09-17

交互
  • 支持矢量图纸的框选功能,按住ctrl键为加选模式,按住alt键为减选模式;从左往右为窗口模式,从右往左为窗交模式;
三维模型
  • 新增控制可视域分析视锥框线显隐的设置参数,支持隐藏可视域分析的框线效果。
// 构造可视域对象的配置项
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);
  • 新增Camera3D类,3D场景下的相机操作可统一通过该类中提供的接口实现,可以通过Viewer3D.getCamera()方法获取
// 获取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的方法
// 获取选中集合中的图元ID数组
viewer2D.getSelectedElements();
  • viewerDrawingSet新增获取外部参照功能,可获取图纸外部参照文件的信息
// 获取外部参照文件
viewer2D.getExternalReferences(id, successCallback, failureCallback)
function successCallback(data){
    // 读取外部参照信息
    externalReference = data
    // 获取外部参照信息中的坐标变换矩阵
    modelTransformation = externalReference[0].items[0].transformation
}
function failureCallback(error){
    console.log(error)
}
  • viewerDrawingSet新增坐标变换功能,可通过给定坐标变换矩阵对图纸进行坐标变换
// 坐标变换
// 设置坐标变换矩阵
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)
  • viewerDrawingSet新增布局信息获取功能,可通过图纸ID获取对应图纸的布局信息
// 获取指定图纸布局信息
viewer2D.getViews(id)