使用产品:iObjectjava11
操作系统:win11 x64
数据类型: 文件型
问题详细描述:将符号库通过组件编写代码导入工作空间后,通过IDesktop11打开保存的工作空间后,相关的专题图没有显示相应的符号,并且在编辑导入的符号时iDesktop出现卡死并且闪退情况,但是在IDesktop中导入相同的符号库后,功能正常,也能正常显示和编辑。并且在代码保存工作空间的过程中发现保存的工作空间文件会一致增大到270MB左右,代码执行完后工作空间文件又会变为10MB左右的一个文件
1、以下是导入符号库的代码
public void importSymbol(String workspacePath, String... symbolFiles){
initWorkSpace(workspacePath);
// 工作空间资源
Resources resources = workspace.getResources();
for (String symbolFile : symbolFiles) {
SymbolLibrary library ;
if(symbolFile.endsWith(POINT_SYMBOL_SUFFIX)){
// 点符号库
library = resources.getMarkerLibrary();
} else if (symbolFile.endsWith(LINE_SYMBOL_SUFFIX)){
// 线型符号库
library = resources.getLineLibrary();
} else if (symbolFile.endsWith(FILL_SYMBOL_SUFFIX)){
// 填充符号库
library = resources.getFillLibrary();
} else {
throw new RuntimeException("符号库文件不符合规则");
}
library.fromFile(symbolFile);
}
saveWorkspace(workspace, new File(workspacePath));
}
private void initWorkSpace (String workspacePath) {
workspace = new Workspace();
workspaceConnectionInfo = new WorkspaceConnectionInfo();
workspaceConnectionInfo.setType(WorkspaceType.SMWU);
workspaceConnectionInfo.setServer(workspacePath);
File file = new File(workspacePath);
if(file.exists() && file.isFile()){
workspace.open(workspaceConnectionInfo);
} else {
workspace.create(workspaceConnectionInfo);
}
}
private boolean saveWorkspace(Workspace workspace, File file){
boolean result = false;
if(Objects.nonNull(workspace)){
WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(file.getAbsolutePath());
result = workspace.saveAs(workspaceConnectionInfo);
}
return result;
}
2、通过iDesktop导入的符号库打开界面
3、通过代码导入的符号库打开界面
希望大佬帮忙看一下是什么原因,
非常感谢!!!