首页 / 浏览问题 / 三维GIS / 问题详情
SuperMap iClient3D for Cesium 重复加载
14EXP 2022年08月16日
SuperMap iClient3D for Cesium 已加载的场景,拖拽出屏幕再拖拽回来,场景又重复加载一次
版本:11i
操作具体步骤请查看视频:
链接:https://pan.baidu.com/s/1gl0mrE_Cjaqg93TqRrxOFw
提取码:3rsc
从视频看出,部分场景切片拖拽回来之后,被重复加载渲染了,对于这种已经加载的场景缓存,如何避免重复加载呢?

代码层面,图层设置了如下优化方案,但是没有看到明显效果

            osgbLayer.clearMemoryImmediately = false;

            osgbLayer._maxSkipNum = 256;

            osgbLayer.indexedDBSetting.isGeoTilesSave = true;

1个回答

您好,

是否重新加载得根据请求去查看

通过重新移动视角时,请求处的传输列是已缓存还是有数据大小的获取来判断是否是重复加载

这个情况应该只是对对象的重新渲染

不管是场景的某一个对象又或者是场景的某一个tile块数据

渲染在桌面上都是会占用显存的

如果您已经渲染的对象在您挪动视角之后仍然保持渲染状态

那么您这边如果数据量稍微大一些,会出现掉帧甚至崩溃的情况
4,151EXP 2022年08月16日

您好,我网上查找的资料说web端的layer设置clearMemoryImmediately 未false后,不会立刻清理缓存,我想达到的效果就是web端加载同一个范围的场景,鼠标移动前后,不会重新请求服务端缓存,这样性能能快一些,我f12也看了下网络请求,也会发送很多请求,100-200之间,查看indexDB中存储的数据也不是很多,有没有较好的方法,对于同一区域,第一次加载后,之后浏览能够减少网络请求。

那您看一下是否是因为您没有设置值

因为 “ clearMemoryImmediately 若设置为false,则需要对setCacheSize设置一个值。”

另外,您所描述的问题,大致应该只有这个方法能解决。
setCacheSize设置512之后,局部浏览有一定改善,感谢!!!
...