如:点击楼栋-隐藏楼栋图层,显示楼层图层-点击楼层-显示该楼层以下的所有层,并展示当前层的房间户型图层;流程操作完后数据怎么恢复到最开始的状态(再次操作后所有的图层显示还是上次样子)
控制图层的显隐参考范例http://support.supermap.com.cn:8090/webgl/examples/editor.html#S3MTiles_BIM
这个案例只对真个图层进行隐藏显示,我是根据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为设置所有图层的可见性。
ids
isVisible
API:http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=layer#setOnlyObjsVisible