首页 / 浏览问题 / 其他 / 问题详情
如何实现建筑加载
35EXP 2019年10月08日
怎么控制一栋或者几栋建筑加载,要的是从无到有的那种效果的加载,找不到示例,实现好像很困难的样子。是根据建筑的某个属性或者数据控制的么?

1个回答

是指从透明慢慢变成不透明那种渐变加载吗?还是不渐变就可以?

不渐变的话,通过S3MTilesLayer.setObjsVisible即可实现根据id显隐。
5,560EXP 2019年10月08日
谢谢解答,还想问下 这个参数id是建筑id还是 整个图层id? api上写的是图元id。还有id是从layer里面获取么?我瞅了好像么有
是指建筑id,就是生成缓存前每个模型对象对应的smid。获取方式可以通过sql查询从数据服务中获取,或者通过其他数据查询的方式获取等等。

容许我再进一步问下,我加载的是如图所示的发布的图层三维数据,这个要怎么查建筑id呢,里面和数据服务类型的数据还不一样,也没有对应字段什么的。要怎么查其中的模型对象?接触的比较少,不知道这样子问对不对

查id要通过数据服务去查,就是发布工作空间时要包含带有原数据集的数据源。

一般来说,你想控制是否显示或隐藏,肯定数据里要包含相应的字段。所以查询的时候对这个字段进行查询即可。

代码的话,可以参考一下官网示例sql查询

http://support.supermap.com.cn:8090/webgl/examples/editor.html#getFeatureBySQL

你好,那个方法试过可行。想要透明->不透明,那种渐变的效果,进一步需要怎么做呢?
用S3MTilesLayer.setObjsColor接口可以设置指定对象的颜色(rgba,包括透明度)。结合定时事件比如html原生的setInterval,就可以实现渐变了。
...