ArcGIS 分组层(GroupLayer)的子图层可见性的判断
问题:
用TocControl和MapControl做了一个测试,现有一个分组层展现在MapControl里,分组层里有个图层假设其为图层A,我将整个分组层的可见状态设为不可见(图层A的实际上也不可见了。)但使用 ILayer.Visible 获得图层A的可见状态时,竟然为True。这是不是因为在Toc控件里图层A仍旧是勾上的缘故?那怎么才能获得图层A的正确的可见状态?
分析:
提到的这个问题,严格来讲是一个bug。对于分组层的子图层,当分组层可见时,直接判断子图层可见性即可,但分组层不可见时,其子图层无论是否勾选均不可见。
解决方案:
根据分析的原理判断图层,VBA代码如下(注意:算法未考虑分组层嵌套分组层的场景,且假设图层名称无重复。)
用TocControl和MapControl做了一个测试,现有一个分组层展现在MapControl里,分组层里有个图层假设其为图层A,我将整个分组层的可见状态设为不可见(图层A的实际上也不可见了。)但使用 ILayer.Visible 获得图层A的可见状态时,竟然为True。这是不是因为在Toc控件里图层A仍旧是勾上的缘故?那怎么才能获得图层A的正确的可见状态?
分析:
提到的这个问题,严格来讲是一个bug。对于分组层的子图层,当分组层可见时,直接判断子图层可见性即可,但分组层不可见时,其子图层无论是否勾选均不可见。
解决方案:
根据分析的原理判断图层,VBA代码如下(注意:算法未考虑分组层嵌套分组层的场景,且假设图层名称无重复。)
Code