首页 / 浏览问题 / 三维GIS / 问题详情
webgl中setOnlyObjsVisible的使用
545EXP 2018年08月28日
默认打开realspace所有的s3m,只操作其中一层名为JZ的S3M,分别是两年的数据,效果是点击后隐藏当前年份的该建筑,通过查询ModelID将另一年的该建筑显示出来。

此处是将有一年的realspace中的所有S3M做了隐藏。

使用setOnlyObjsVisible的时候,可以顺利隐藏该年份的该建筑,但是却无法将另外一年的显示出来,检查参数传递是没有问题的

是因为设置了整个S3M隐藏的原因吗?

同时也尝试了setObjsVisible方法,能显示出另一年份的该建筑,但是当想切回原来建筑的时候,却将无论哪一年的JZ的S3M都隐藏了

求大神开导!

1个回答

setObjsVisible(ids, isVisible)

根据图元ID列表,设置对应的图元的可见性,并与该图层其他图元成互斥可见关系。

示例:

//设置该图层id为1的图元显示,其余所有图元全部不可见。
layer.setObjsVisible([1],true);
//设置图元id=1的隐藏,其余所有图元可见。
layer.setObjsVisible([1],false);

setOnlyObjsVisible(ids, isVisible)

根据图元ID列表,设置对应图元的可见性(手动设置)。

示例:

//设置id为1和2的图元为不可见,其余图元的可见状态不变。
layer.setOnlyObjsVisible([1,2],false);
//设置id为1和2的图元为可见,其余图元的可见状态不变。
layer.setOnlyObjsVisible([1,2],true);

摘自api

根据你的需求,使用显隐互斥的 setObjsVisible 好一些。

5,560EXP 2018年08月28日
我尝试了您说的layer.setObjsVisible([],true);

然后对于单个模型用setOnlyObjsVisible()

发现还是只能隐藏 不能显示
...