JavaScript SDK版本3.6.222

2022-10-19

场景应用
  • 新增三维图纸图层类型,支持在GIS场景中以DrawingLayer添加三维图纸模型,可对图纸模型进行位置偏移、透明度设置等相关操作。需要注意的是,场景内仅支持添加转为流式加载模式的dwg图纸,在图纸模型转换时需配置转换参数:{“toBimtiles”:“true”,“viewType”:“3D”}。
// 获取GIS场景的图层管理器
let layerMng = viewerGIS.getLayerManager();

// 构造DrawingLayer的配置参数
let option;
// 设置图层的Id、名称
option.id = 'drawingLayerId';
option.name = 'drawingLayer';
// 指定待加载三维图纸模型的View Token
option.viewToken = '<yourViewToken>'

// 构造DrawingLayer
let drawingLayer = new Glodon.Bimface.Layer.DrawingLayer(option);

// 调用LayerManager的接口将DrawingLayer添加至根目录下
layerMng.addLayer(drawingLayer);
  • GIS场景新增捕捉功能,支持在场景中捕捉端点、线、面,也可设置参与捕捉的对应图层、构件等过滤条件。地图、地形图层均不参与捕捉。
// 构造捕捉对象
let snap = new Glodon.Bimface.Viewer.SnapMode();

// 设置捕捉类型为点、线
snap.setSnapList([Glodon.Bimface.Viewer.SnapObject.Endpoint, Glodon.Bimface.Viewer.SnapObject.Line]);
// 设置仅指定的图层参与捕捉
snap.setSnapCondition({layerIds:['bimLayerId','osgbLayerId']});

// ViewerGIS中设置捕捉
viewerGIS.setSnapMode(snap);

//开启捕捉模式
viewerGIS.enableSnap(true);

// 关闭捕捉模式
viewerGIS.enableSnap(false);
  • GIS场景新增对构件集合的查询接口,支持通过构件ID查询该构件所在集合(set)的信息,也支持通过集合ID查询集合内所有构件ID。
// 获取BIMLayer的构件管理器
let comMng = viewerGIS.getLayerManager().getLayer('BIMLayerId').getComponentManager();

// 通过构件ID获得所在set的信息,并在控制台输出
comMng.getSetByComponentId('135980', function (data){
  console.log(data);
});

// 通过集合的ID获得集合内所有构件的ID,并在控制台输出
comMng.getComponentsBySetId('180534', function (data){
  console.log(data);
});
  • GIS场景预览时,打开默认工具条的目录树,选中地图/地形/实景模型图层时,新增了裁切/拍平对象的目录树,支持在预览界面选中拍平裁切对象并zoom至对应位置,也可以通过勾选框控制拍平或裁切对象的显隐状态。
场景编辑
  • 在场景编辑-环境图层编辑模块中,优化了拍平/裁切对象的编辑状态下的交互样式。在进行区域选点编辑时,默认将其余图层进行半透明显示,可辅助进行选点交互。
三维模型
  • 新增了设置平面颜色不受光照影响的方法。
// 构造平面对象
let rectanglePlane = new Glodon.Bimface.Plugins.Geometry.Plane({x: 15000, y: -10000, z: 3000}, {x: -10000, y: 5000, z: 3000});
// 设置平面颜色,enableLightEffect参数为false时,不受光照影响
rectanglePlane.setColor(new Glodon.Web.Graphics.Color("#32D3A6", 1),false);
// 构造外部构件管理器
let extObjMng = new Glodon.Bimface.Plugins.ExternalObject.ExternalObjectManager(viewer3D);
// 将平面添加为外部构件
extObjMng.loadObject({name:"rectanglePlane", object:rectanglePlane});
  • 优化了三维模型中特殊点的捕捉样式,与二维图纸特殊点样式保持一致。
  • 优化了框选放大功能,使得三维图纸的框选放大效果更好。
  • 优化了三维模型在模型外旋转的旋转中心的显示效果。
  • 完善了流式加载根据场景单位进行换算的能力。
  • 优化了Esc快捷键的交互逻辑。
矢量图纸
  • 支持定位到指定视口的图元。
// 获取图纸对象
let drawing = viewer2D.getDrawing(modelId);
// 定位到指定视口图元
drawing.zoomToObject({viewportId:"539", objectId:"495"});
  • 支持选中指定视口的图元。
// 获取图纸对象
let drawing = viewer2D.getDrawing(modelId);
// 选中指定视口图元
drawing.select({viewportId:"539", objectIds:["495"]});