首页 / 浏览问题 / 三维GIS / 问题详情
使用indexedDBSetting后不生效
4EXP 2022年11月16日

当使用加载viewer.scene.addS3MTilesLayerByScp模型后,indexedDBSetting并不缓存。只是在indexDB数据库中创建了一个空数据集。使用谷歌和edge都试过不可以。但是有时候有的模型就莫名触发缓存了,不知道为什么,同样的代码。查看属性设置缓存的都为true,现在使用的模型初次加载为80M,难道是因为大小限制。但是因为涉密不能提供

let promise = this.viewer.scene.addS3MTilesLayerByScp(
  this.threeModelUrls,
  {
    name: 'suofeiyaOSGB',
    cullEnabled: false,
    // autoSetView: false
    // cacheEntityCount: 100
  }
);
Cesium.when(promise, function(layer) {
layer.maximumMemoryUsage = 3048;
layer.clearMemoryImmediately = false;
layer.indexedDBSetting.isGeoTilesSave = true;
layer.indexedDBSetting.isGeoTilesRootNodeSave = true;
layer.indexedDBSetting.isAttributesSave = true;
layer.residentRootTile = true;

});

1个回答

没太明白您的意思。

您是想要知道为什么同样的代码有时候会触发缓存有时候不会?

我记得不错的话indexedDB的手动存储大小为大于250M,但是具体这个数据没有进行一个准确的测试

我这边设置 layer.indexedDBSetting.isGeoTilesSave = true 后,倒是不会重复发起服务器请求了,会直接调取缓存。
4,151EXP 2022年11月17日
我意思是不是模型大小导致无法缓存,因为这个已经试过好几次了,都不能缓存,每次加载都会重新加载。您那边说可以,不知能到能不能提供一个demo

可以参考http://qa.supermap.com/59150

这个没有什么大的demo,就是在示例的基础上使用 layer.indexedDBSetting.isGeoTilesSave = true

遇到同样的问题,不知道题主有没有找到原因,相关参数都设置为true了。
...