您好,iObjects Java 11.1.1 组件提供了 OSGBCacheBuilder.append 接口用于局部更新已生成的三维切片缓存,使用 append 接口也可实现增量更新效果,接口详细说明和使用方式可参考 iObjects Java 组件帮助文档,如下图所示:
三维切片缓存更新提供了 2 种方式:
- 按数据范围 Bounds 更新;
- 根据模型 ID 更新。
对于已删除的数据,可通过按数据范围更新的方式更新三维切片缓存,即可实现删除效果;对于新增的数据,可任选以上 2 种更新方式之一,皆可达到新增三维切片缓存的效果。OSGBCacheBuilder.append 接口的详细使用方式,可参考以下代码示例:
注意:OSGBCacheBuilder 对象参数需与待更新的三维切片缓存生成参数保持一致!若不清楚具体参数值,可打开待更新的三维切片缓存配置文件 *.scp 从中获取。
// 按数据范围更新三维切片缓存
builder.setBounds(bounds);
boolean append = builder.append(UpdateType.ALL, true);
// 按模型 ID 更新三维切片缓存
UpdateObjectsInfo updateObjectsInfo = new UpdateObjectsInfo();
updateObjectsInfo.setDataset((DatasetVector) building);
updateObjectsInfo.setObjectIDs(objectIDs);
ArrayList<UpdateObjectsInfo> updateObjectsInfos = new ArrayList<>();
updateObjectsInfos.add(updateObjectsInfo);
builder.setUpdateObjectsInfoArray(updateObjectsInfos);
boolean append = builder.append(UpdateType.ALL, true);
希望可以帮到您。