webgl多层bim模型 [已关闭]

0 投票

请教各位,我想实现这种功能,首先需要获取到bim有几层楼高,然后点击某一按钮比如1F,就把1F以上的楼层全部隐藏包括1楼天花板,能够看到1F里的布局,谢谢!

问题关闭原因: 已解决
11月 12, 2020 分类:  115次浏览 | 用户: splb (9 分)
已关闭 11月 16, 2020 用户:splb

1个回答

0 投票
可以这样,属性表里面专门建个字段来保存楼层信息,比如说一楼那么该字段的值就是1,二楼就是2;要获取一共有几层楼就遍历这个字段,通过去重的方式查出有几层,然后点击1F时就把所有楼层字段为1的图元全都隐藏掉,设置visible=false;
11月 12, 2020 用户: 卷饼先生 名扬四海 (3,842 分)
已经增加了楼层的字段,请问具体方法是用哪些呢?是有什么方法可以获取到全部的Features要素吗?

我现在参考这个实例查询到数据了,但是接口响应很慢,估计有15s左右,因为我这个模型有多个数据集,我用到了setOnlyObjsVisible这个方法控制显隐,遍历每个数据集里的要素,进行过滤,有什么其他方法吗

layers.forEach((item, index) => {
  item.setOnlyObjsVisible(ids, false)
})
getFeatureParam = new SuperMap.REST.FilterParameter({
        attributeFilter: "SMID > -1"
      });
      getFeatureBySQLParams = new SuperMap.REST.GetFeaturesBySQLParameters({
        queryParameter: getFeatureParam,
        toIndex: -1,
        datasetNames: datasetNames
      });
      getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(URL_iSERVER.queryParameter, {
        eventListeners: {"processCompleted": processCompleted, "processFailed": processFailed}
      });

      getFeatureBySQLService.processAsync(getFeatureBySQLParams);

...