首页 / 浏览问题 / 移动GIS / 问题详情
代码中创建工作空间
89EXP 2018年08月27日
你好,请问超图有没有api,在代码里创建工作空间?

2 个回答

您好,您的意思应该是保存工作空间文件吧。从811版本开始,通过Workspace.save()接口可以实现保存工作空间文件,也另存为或新建新的工作空间文件,不同之处在于Workapce关联的工作空间文件路径是否存在。

创建一个新的工作空间文件的代码:

Workspace wk = new Workspace(); // 没有关联的工作空间文件
WorkspaceConnectionInfo wkInfo = wk.getConnectionInfo();
wkInfo.setServer(path); // path 为工作空间文件的路径
try{ 
   wkInfo.save();       // 保存工作空间,如果文件不存在就会创建
}catch(Exception e){
  
}


另存为工作空间,就是将原来打开的工作空间关联的文件路径(示例中的path)修改,再保存即可。

可参考帮助文档中的说明。

幸俊
1
694EXP 2018年08月27日
奇怪,为什么我查看帮助文档找不到save(),这个方法,看了9D的文档也没有,程序里调用就出错了
谢谢,可以了,原来是Workspace里的save(),为什么你的编译器不提示错误
您说的提示错误应该是静态检查提示没有捕获异常吧,你将鼠标指针放在错误代码处,会有提示改正建议。因为这个接口可能会抛出异常,给出一些不能保存的原因,使用try...catch..就不会报错了

我使用AS编译的,如果我用WorkspaceConnectionInfo的save()方法,直接报错了,为何你的不会呢

WorkspaceConnectionInfo没有这个方法当然会报错了。它是Workspace关联的一些属性信息,并没有操作Workspace的功能,Workspace.save()就已经保存到文件了。
嗯嗯,还有一个疑问,就是我先创建了工作空间,然后创建新的数据源和数据集,都创建成功了,调用工作空间打开数据源,再保存工作空间,然后把手机里的的工作空间和数据源拷贝到电脑用桌面端打开,发现工作空间里没有数据源,是什么原因呢,你有遇到过吗?
我没有遇到这个问题,并可以且我试了一下没有问题,桌面打开工作空间也有保存的数据源。

您可以检查一下保存工作空间时是否有异常,返回值是否为true。另外,可注意一下几点:

1. 数据源创建成功后,该数据源已经在工作空间打开,不用再打开一次;

2. 与工作空间类似,DatasourceConnectionInfo.setServer()设置数据源的路径。

3. 保存的工作空间中,关联的数据源使用相对路径,拷贝后也要保持相同的相对路径,检查一下路径。

4. Workspace.save()如果成功,使用Workspace.getDatasources().getCount()查看一下保存的数据源数目
谢谢您,可以了,原来是我多打开了一次工作空间。
桌面端的开发是有的,安卓端和web端的话没有
HX
1
71EXP 2018年08月27日
看了一下帮助文档,移动端也可以在代码中动态创建工作空间和数据源数据集的
...