图层显隐问题

0 投票
我先把A B C 图层visible全部设置为false, 然后让A图层中的某个建筑通过 setObjsVisible(ids, true) 单独显示。然后切换菜单跳转视角,调用了一次遍历所有图层并 visible=true 并layer.refresh() 的方法,目的是想让所有图层都恢复显示。

问题:没有对 建筑进行显隐操作的图层(B C)才会恢复显示所有建筑,A图层因为操作过某栋建筑,所以只显示那栋建筑,其他建筑都不显示。但是A图层显示是true, 里面的建筑包括操作过的建筑也都是true,  但是为什么都不显示啊?
11月 7, 2019 分类:  257次浏览 | 用户: 生命中不能承受之轻 初出茅庐 (35 分)

1个回答

0 投票
因为setObjsVisible的意思是【根据图元ID列表,设置对应的图元的可见性,并与该图层其他图元成互斥可见关系。】

比如说您设置了A图层的ids可见后,那其他图元就被设置了不可见,您在恢复过来还应该是不可见的状态。

您尝试使用一下setObjsVisible接口
11月 7, 2019 用户: 赵爽 登峰造极 (6,215 分)
意思懂了,最后一句话有点不太明白,我需要再使用setObjsVisible(ids, boolean)么。
不好意思,我复制错了= =应该是尝试使用一下setOnlyObjsVisible接口,不好意思
没事。你说的是我单独显示某栋建筑的时候 改成使用这个么?

这个我也测试过。因为我把所有图层都设成false了,所以原来使用的setObjsVisible,可以直接控制图层中建筑的显隐。但是使用setOnlyObjsVisible,需要先把当前图层恢复到true可见,然后才能对某栋建筑进行操作。但是A图层恢复可见,那我就没法用setOnlyObjsVisible 单独展示图层了,这样得话,A图层所有建筑都会显示。还有其他方法嘛~
那您尝试过强制把他们(A图层)全部都用setObjsVisible设置为true么?或者把A图层除了ids以外的ID设置一遍呢?因为他们最后恢复过来应该还是false状态
...