Forge Viewer isLayerVisible始终为假

问题描述

由于某种原因,我在viewer.isLayerVisible(layerNode)上总是错误的。 我遵循了本教程https://forge.autodesk.com/blog/toggle-sheet-layer-visibility 我在LAYER_VISIBILITY_CHANGED_EVENT上有事件处理程序,这是我在打字稿中的代码片段:

viewer.addEventListener(Autodesk.Viewing.LAYER_VISIBILITY_CHANGED_EVENT,(e) => {
var root = viewer.model["myData"].layersRoot; //getLayersRoot() is not a function for some reason
var overlayLayer = viewer["getSelectedLayer"]();
if (viewer["layerRoot"] != undefined) {
    var layerNode = root.children.filter((e) => { return e.name === overlayLayer })
    var isLayerVisible = viewer.isLayerVisible(layerNode);
    //show layer
    if (isLayerVisible) {
        viewer.impl.addOverlay("Edit2D",viewer["savedPoints"].overlayLayer)
    }
    //hide layer
    else {
        viewer.impl.removeOverlayScene("Edit2D")
    }
}

});

关闭图层管理器​​的某些图层后,我也将viewer.areAllVisible()设置为true。

Forge查看器版本为7。*

您有什么建议吗?谢谢!

解决方法

我发现您可以从indexToLayer查看器属性访问可见层和可见层

   var visibleLayers = Array.from(viewer.impl.layers.indexToLayer.filter(e => e != null && e.visible));

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...