首页 / 浏览问题 / 三维GIS / 问题详情
WebGL显示隐藏控制,怎么再初始化到最初的状态?
iZT_Xiao...  (22EXP)  初出茅庐
9月21日, 2020

如:点击楼栋-隐藏楼栋图层,显示楼层图层-点击楼层-显示该楼层以下的所有层,并展示当前层的房间户型图层;流程操作完后数据怎么恢复到最开始的状态(再次操作后所有的图层显示还是上次样子)

1个回答

卷饼先生  (6,052EXP)  登峰造极
9月21日, 2020

这个案例只对真个图层进行隐藏显示,我是根据sql过滤查询出对应的SmID数组来控制的,如:

var fjIds = [];
var selectedFeatures = queryEventArgs.originResult.features;
for (let i = 0; i < selectedFeatures.length; i++) {
    var id = selectedFeatures[i].fieldValues[0];
    fjIds.push(id);
}
//显示过滤出来的房间数据,其余所有图元全部不可见。
layerFj.setObjsVisible(fjIds,true);

这样根据sql查询过滤隐藏数据,在我再次点击的时候怎么恢复到最初的数据???

写一个监听事件,点击的时候将其余图层也显示出来,根据自身需求控制监听事件的启动

使用setOnlyObjsVisible(ids, isVisible),

根据图元ID列表,设置对应图元的可见性(手动设置),若ids为空则isVisible为设置所有图层的可见性。

Name Type Description
ids Array 图元ID列表。
isVisible Boolean 是否可见。

API:http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=layer#setOnlyObjsVisible

...