类 Workspace
- java.lang.Object
-
- com.supermap.data.Workspace
-
public class Workspace extends java.lang.Object
工作空间。工作空间是用户的工作环境,主要完成数据的组织和管理,包括打开、关闭、创建、保存工作空间文件(SXW,SMW,SXWU,SMWU,DEFAULT)。工作空间(Workspace)是 SuperMap 中的一个重要的概念,工作空间存储了一个工程项目(同一个事务过程)中所有的数据源,地图的组织关系,工作空间通过其中的数据源集合对象(
Datasources
),地图集合对象(Maps
)来管理其下的数据源,地图。工作空间中的数据源集合(
Datasources
)只存储数据源的连接信息和位置等,实际的数据源都是存储在UDB 中。工作空间中的地图集合(Maps
)中存储的是地图的一些配置信息,如地图包含图层的个数,图层引用的数据集,地图范围,背景风格等。在当前版本中,一个应用程序中允许多个工作空间共存,每个工作空间可以管理自己的一套数据源和地图等,但是值得注意的是不同的工作空间是不可以相互操作的。
注意:当用户使用该工作空间对象进行编程时,如果将
Workspace
与MapControl
建立了关联,那么在进行对象的关闭时,一定需要注意关闭的顺序,如下:- 关闭 Map 对象;
- 关闭 MapControl 对象;
- 关闭 Workspace 对象。
- Example:
- 以下代码示范如何打开工作空间,从工作空间中取数据源,从数据源取数据集,查看数据集的描述信息以及如何保存工作空间。
public void workspaceTest(){ // 打开工作空间,取出工作空间中名为“World”的数据集,查询其描述信息 Workspace workspace = new Workspace(); WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(); workspaceConnectionInfo.setType(WorkspaceType.SMWU); String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); String file = rootPath + "/SampleData/World/World.smwu"; workspaceConnectionInfo.setServer(file); workspace.open(workspaceConnectionInfo); Datasource datasource = workspace.getDatasources().get(0); DatasetVector dataset = (DatasetVector) datasource.getDatasets().get( "World"); System.out.println("数据集的描述信息为:" + dataset.getDescription()); // 保存工作空间 try { workspace.save(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // 释放资源 dataset.close(); workspaceConnectionInfo.dispose(); workspace.close(); workspace.dispose(); }
-
-
构造器概要
构造器 构造器和说明 Workspace()
构造一个新的 Workspace 对象。
-
方法概要
所有方法 实例方法 具体方法 限定符和类型 方法和说明 void
close()
关闭工作空间。void
dispose()
释放该对象所占用的资源。java.lang.String
getCaption()
返回工作空间显示名称,便于用户做一些标识,可以修改。WorkspaceConnectionInfo
getConnectionInfo()
返回工作空间的连接信息。Datasources
getDatasources()
返回数据源集合对象。java.lang.String
getDescription()
返回用户加入的对当前工作空间的描述或说明性信息。Maps
getMaps()
返回工作空间中的地图集合对象。Resources
getResources()
返回工作空间的资源库对象。Scenes
getScenes()
获取工作空间中的三维场景集合对象。boolean
isModified()
返回工作空间的内容是否有改动,如果对工作空间的内容进行了一些修改,则返回 true,否则返回 false。boolean
open(WorkspaceConnectionInfo connectionInfo)
用于打开已有的工作空间文件。boolean
save()
保存工作空间, 通过设置工作空间的连接信息,可以实现保存新建的工作空间,另存为工作空间,保存当前打开的工作空间的功能 该接口需要捕捉异常。void
setCaption(java.lang.String caption)
设置工作空间显示名称,便于用户做一些标识,可以修改。void
setDescription(java.lang.String description)
设置用户加入的对当前工作空间的描述或说明性信息。
-
-
-
方法详细资料
-
close
public void close()
关闭工作空间。工作空间的关闭之前确保使用的该工作空间的地图等内容关闭或断开链接。
-
dispose
public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。对数据集进行操作后必须调用 dispose() 方法,否则数据修改内容不能被保存。
-
getConnectionInfo
public WorkspaceConnectionInfo getConnectionInfo()
返回工作空间的连接信息。- 返回:
- 工作空间的连接信息。
- 另请参阅:
WorkspaceConnectionInfo
- Default:
- 默认值为 {Name="",Type=Default,Version=UGC60,Server="",Database="",Driver="",User="",Password=""}。
-
getCaption
public java.lang.String getCaption()
返回工作空间显示名称,便于用户做一些标识,可以修改。- 返回:
- 工作空间显示名称。
- Default:
- 默认值为 "UntitledWorkspace"。
-
setCaption
public void setCaption(java.lang.String caption)
设置工作空间显示名称,便于用户做一些标识,可以修改。- 参数:
caption
- 工作空间显示名称。
-
getDatasources
public Datasources getDatasources()
返回数据源集合对象。数据源集合对象存储工作空间下的数据源的逻辑信息,如数据源数据的连接信息,位置等,并不存储实际的数据源数据。实际的数据源数据存储在关系型数据库或 UDB 文件中。工作空间的数据源集合对象主要用来管理该工作空间中的数据源,包括打开、创建、关闭等操作。
- 返回:
- 数据源集合对象。
- Default:
- 默认值为一个初始化的
Datasources
对象。
-
getMaps
public Maps getMaps()
-
isModified
public boolean isModified()
返回工作空间的内容是否有改动,如果对工作空间的内容进行了一些修改,则返回 true,否则返回 false。工作空间负责管理数据源、地图,其中任何一项内容发生变动,此属性都会返回 true,在关闭整个应用程序时,先用此属性判断工作空间是否已有改动,可用于提示用户是否需要存盘。- 返回:
- 如果对工作空间的内容进行了一些修改,则返回 true,否则返回 false。
- Default:
- 默认值为 false, 即工作空间中的内容没有改动。
-
getDescription
public java.lang.String getDescription()
返回用户加入的对当前工作空间的描述或说明性信息。- 返回:
- 用户加入的对当前工作空间的描述或说明性信息。
- Default:
- 默认值为一个空字符串。
-
setDescription
public void setDescription(java.lang.String description)
设置用户加入的对当前工作空间的描述或说明性信息。- 参数:
description
- 用户加入的对当前工作空间的描述或说明性信息。
-
open
public boolean open(WorkspaceConnectionInfo connectionInfo)
用于打开已有的工作空间文件。成功返回 true。打开工作空间时,数据源集合、地图集合都会被读入到内存中。如果其中的数据源被设置为自动连接,则在打开工作空间时就会连接到这些数据源数据,但如果要对数据进行访问,还需要打开数据源下某个具体的数据集;如果数据源没有被设置为自动连接,则只能返回数据源的别名,数据源中存储的数据集信息不可知,数据源中数据也不可用。
当打开工作空间时,如果其中有某几个数据源没有被成功打开,而 open 方法仍然返回 true,可以通过查看日志来获悉哪些数据源未被成功打开。
- 参数:
connectionInfo
- 用来打开工作空间的工作空间连接信息对象。- 返回:
- 一个值指示工作空间是否打开,如果打开成功返回 true,否则返回 false。
-
save
public boolean save() throws java.lang.Exception
保存工作空间, 通过设置工作空间的连接信息,可以实现保存新建的工作空间,另存为工作空间,保存当前打开的工作空间的功能 该接口需要捕捉异常。- 返回:
- 返回boolean类型,保存成功返回true,否则返回false
- 抛出:
java.lang.Exception
-以下情况会抛出异常: 1.当前工作空间对象已经释放; 2.工作空间是新建的,没有指定保存路径; 3.指定保存文件所在目录不存在,将自动创建目录,但创建失败; 4.指定了保存文件的路径,但文件后缀名不是有效的工作空间类型,且没有指定工作空间类型;
- Example:
- 以下代码示范如何保存工作空间
public void testSaveWorkSpace{ MapControl mapControl = new MapControl(context); Map map = mapControl.getMap(); Workspace workspace = new Workspace(); map.setWorkspace(workspace); …… WorkspaceConnectionInfo info = workspace.getConnectionInfo(); info.setType(WorkspaceType.SMWU); String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); info.setServer(rootPath + "/SuperMap/data/MyWorld.smwu"); try { workspace.save(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
-
getResources
public Resources getResources()
返回工作空间的资源库对象。该对象是用于管理工作空间中的资源,目前即指线型符号库、点状符号库和填充符号库。- 返回:
- 工作空间的资源库对象。
- Default:
- 默认值为空的
Resources
对象
-
getScenes
public Scenes getScenes()
获取工作空间中的三维场景集合对象。- 返回:
- 工作空间中的三维场景集合对象,默认值为Scenes 对象。
-
-