public abstract class Dataset
extends com.supermap.data.InternalHandle
所有数据集类型(如矢量数据集,栅格数据集等)的基类。提供各数据集共有的方法和事件。
数据集一般为存储在一起的相关数据的集合;根据数据类型的不同,分为矢量数据集和栅格数据集,以及为了处理特定问题而设计的如拓扑数据集,网络数据集等。数据集是 GIS 数据组织的最小单位。其中矢量数据集是由同种类型空间要素组成的集合,所以也可以称为要素集。根据要素的空间特征的不同,矢量数据集又分为点数据集,线数据集,面数据集等,各矢量数据集是空间特征和性质相同而组织在一起的数据的集合。而栅格数据集由像元阵列组成,在表现要素上比矢量数据集欠缺,但是可以很好的表现空间现象的位置关系。栅格数据集包括影像数据集和栅格数据集。
在 SuperMap 中有十八种类型的数据集,但目前版本支持的数据集主要有点数据集,线数据集,面数据集,文本数据集,复合数据集,网络数据集,影像数据集和栅格数据集。
对数据集进行操作后必须调用 Workspace.dispose()
方法,否则数据修改的内容不能被保存。
限定符和类型 | 方法和说明 |
---|---|
void |
addClosedListener(DatasetClosedListener l)
添加一个用于接收数据集关闭结束事件(
DatasetClosedEvent )的监听器。 |
void |
addClosingListener(DatasetClosingListener l)
添加一个用于接收数据集关闭事件(
DatasetClosingEvent )的监听器。 |
void |
addLockChangedListener(DatasetLockChangedListener l)
添加一个用于接收数据集内存读写锁改变事件(
DatasetLockChangedEvent )的监听器。 |
void |
addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(
SteppedEvent )的监听器。 |
void |
close()
用于关闭当前数据集。
|
void |
dispose()
释放该对象所占用的资源。
|
boolean |
equals(Object obj) |
Rectangle2D |
getBounds()
返回数据集中包含所有对象的最小外接矩形。
|
Datasource |
getDatasource()
返回此数据集对象所属数据源对象。
|
String |
getDescription()
返回用户加入的对数据集的描述信息。
|
EncodeType |
getEncodeType()
返回此数据集数据存储时的编码方式。
|
String |
getExtInfo()
返回用户加入的对数据集的附加信息。
|
GeoStoreType |
getGeoStoreType()
获取数据集Geometry的存储类型。
|
DatasetGroup |
getGroup()
获取当前数据集所在的分组对象。
|
int |
getID()
获取数据集的ID。
|
LockStateType |
getLockState()
获取数据集的内存锁状态。
|
String |
getName()
返回此数据集的名称,是数据集的唯一标识。
|
HashMap<String,DatasetPrivilegeTypes> |
getPrivilegeTypes()
获取所有用户或角色的数据集权限
|
DatasetPrivilegeTypes |
getPrivilegeTypes(String userOrRoleName)
获取指定的用户名的数据集的权限
|
PrjCoordSys |
getPrjCoordSys()
返回数据集的投影信息。
|
String |
getSchema()
获取数据集所在的模式名。
|
String |
getTableName()
对数据库型数据源,返回此数据集在数据库中所对应的数据表名称;对文件型数据源,返回此数据集的存储属性的表名称(文件型数据源文件用.udb 文件存储空间数据,.udd 文件存储属性数据)。
|
DatasetTransStateType |
getTransState()
获取数据集的事务状态。
|
DatasetType |
getType()
返回此数据集的类型。
|
int |
hashCode() |
boolean |
hasPrivilegeGrant()
获取当前数据源连接用户对数据集是否有授权权限
只有数据集拥有者和超级用户有授权和撤回的权限。
|
boolean |
hasPrjCoordSys()
判断数据集是否有投影,即是否有自己的投影。
|
boolean |
isDisposed()
检测数据集对象是否已被释放。
|
boolean |
isOpen()
判断此数据集是否已经打开。
|
boolean |
isReadOnly()
返回当前数据集是否为只读。
|
boolean |
isVersioned()
检测数据集是否已注册版本。
|
boolean |
open()
用于打开数据集,准备对数据集进行操作。
|
void |
refresh()
刷新数据集信息。
|
void |
removeClosedListener(DatasetClosedListener l)
移除一个用于接收数据集关闭结束事件(
DatasetClosedEvent )的监听器。 |
void |
removeClosingListener(DatasetClosingListener l)
移除一个用于接收数据集关闭事件(
DatasetClosingEvent )的监听器。 |
void |
removeLockChangedListener(DatasetLockChangedListener l)
移除一个用于接收数据集内存读写锁改变事件(
DatasetLockChangedEvent )的监听器。 |
void |
removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(
SteppedEvent )的监听器。 |
void |
setBounds(Rectangle2D value)
设置数据集中包含所有对象的最小外接矩形。
|
void |
setDescription(String value)
设置用户加入的对数据集的描述信息。
|
void |
setExtInfo(String value)
设置用户加入的对数据集的附加信息。
|
boolean |
setLockState(LockStateType lockType)
设置数据集的内存锁状态。
|
boolean |
setPrivilegeTypes(String userOrRoleName,
DatasetPrivilegeTypes datasetPrivilegeTypes)
设置指定用户对数据集的操作权限。
|
void |
setPrjCoordSys(PrjCoordSys value)
设置数据集的投影信息。
|
void |
setReadOnly(boolean readOnly)
设置当前数据集是否为只读。
|
String |
toString() |
public void setPrjCoordSys(PrjCoordSys value)
Datasource.getPrjCoordSys() 方法
。value
- 数据集的投影信息。public PrjCoordSys getPrjCoordSys()
Datasource.getPrjCoordSys() 方法
。public void getPrjCoordSysTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象 // 从数据源中取出数据集,查看数据集的投影 Dataset dataset = datasource.getDatasets().get("World"); PrjCoordSys prjCoordSys = dataset.getPrjCoordSys(); }
public boolean isVersioned()
public boolean hasPrjCoordSys()
public Rectangle2D getBounds()
public void setBounds(Rectangle2D value)
value
- 数据集中包含所有对象的最小外接矩形。public boolean isReadOnly()
DatasetVector
),不允许删除、修改和添加记录;DatasetImage
),不允许设置其像素值;DatasetGrid
),不允许设置其栅格值。Dataset.open()
Dataset.open()
方法的示例。public boolean isOpen()
Dataset.open()
Dataset.open()
方法的示例。public Datasource getDatasource()
public String getDescription()
public void setDescription(String value)
value
- 用户加入的对数据集的描述信息。public void setDescriptionTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象 // 从数据源中取出数据集,为数据集写入描述信息 Dataset dataset = datasource.getDatasets().get("World"); dataset.setDescription("世界地图"); String description = dataset.getDescription(); System.out.println("数据集描述信息为:" + description); }
public String getExtInfo()
注意:字符串长度不能超过2048。
public void setExtInfo(String value)
value
- 用户加入的对数据集的附加信息。public void setExtInfoTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象 // 从数据源中取出数据集,为数据集写入描述信息 Dataset dataset = datasource.getDatasets().get("World"); dataset.setExtInfo("行政分布"); String extInfo = dataset.getExtInfo(); System.out.println("数据集附加信息为:" + extInfo); }
public String getName()
注意数据集使用名称作为唯一标识,而数据源使用别名作为唯一标识,数据集的名称是可以通过数据集集合对象(Datasets
)的rename 方法
被修改的,而数据源的别名则不可被修改。
public String getSchema()
public String getTableName()
public int getID()
public DatasetType getType()
DatasetVector
),栅格数据集(DatasetGrid
),影像数据集(DatasetImage
),以及网络数据集(DatasetNetwork)。public GeoStoreType getGeoStoreType()
GeoStoreType
public EncodeType getEncodeType()
EncodeType
public void close()
Dataset.open()
方法的示例。public boolean open()
因此,在对数据集进行各种操作之前,需要先打开该数据集,即调用 Dataset.open() 方法。
public void openTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象 // 从数据源中取出数据集,打开数据集,将数据集设置为只读 Dataset dataset = datasource.getDatasets().get("World"); dataset.open(); if (dataset.isOpen()) { System.out.println("打开数据集成功"); // 判断数据集是否为只读 if (dataset.isReadOnly()) { System.out.println("数据集为只读数据集"); } else { // 如果不是只读将其设置为只读 dataset.setReadOnly(true); } dataset.close(); } }
public void setReadOnly(boolean readOnly)
当数据源以只读方式打开时,其中的数据集不允许被修改;如果数据源不是以只读方式打开,但数据集被设置为只读时也不能修改数据集。
readOnly
- 指定当前数据集是否可读。Dataset.open()
Dataset.open()
方法的示例。public DatasetGroup getGroup()
IllegalStateException
- 数据集对象、数据集所属的数据源已被释放。public void addClosingListener(DatasetClosingListener l)
DatasetClosingEvent
)的监听器。l
- 一个用于接收数据集关闭事件的监听器。public void removeClosingListener(DatasetClosingListener l)
DatasetClosingEvent
)的监听器。l
- 一个用于接收数据集关闭事件的监听器。public void addLockChangedListener(DatasetLockChangedListener l)
DatasetLockChangedEvent
)的监听器。l
- 一个用于接收数据集内存读写锁改变事件的监听器。public void removeLockChangedListener(DatasetLockChangedListener l)
DatasetLockChangedEvent
)的监听器。l
- 一个用于接收数据集内存读写锁改变事件的监听器。public void addClosedListener(DatasetClosedListener l)
DatasetClosedEvent
)的监听器。l
- 一个用于接收数据集关闭结束事件的监听器。public void removeClosedListener(DatasetClosedListener l)
DatasetClosedEvent
)的监听器。l
- 一个用于接收数据集关闭结束事件的监听器。public void addSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public void removeSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public LockStateType getLockState()
public boolean setLockState(LockStateType lockType)
lockType
- 锁的类型。LockStateType
public DatasetTransStateType getTransState()
public void refresh()
public boolean isDisposed()
public DatasetPrivilegeTypes getPrivilegeTypes(String userOrRoleName)
userOrRoleName
- 指定用户名或角色名public HashMap<String,DatasetPrivilegeTypes> getPrivilegeTypes()
public boolean setPrivilegeTypes(String userOrRoleName, DatasetPrivilegeTypes datasetPrivilegeTypes)
设置指定用户对数据集的操作权限。
特殊说明:仅超级用户或数据集的创建者才有权限设置,特别的,当PostGIS、Yukon数据源的数据库内核为openGauss、GaussDB时,仅超级用户或具有sysadmin权限的用户才有权限设置。
userOrRoleName
- 用户名或者角色名,如果传入的名称是超级用户,则返回失败,因为超级用户本身就拥有所有数据集权限,所以不支持设置datasetPrivilegeTypes
- 指定权限public boolean hasPrivilegeGrant()
只有数据集拥有者和超级用户有授权和撤回的权限。
public void dispose()
Copyright © 2021–2024 SuperMap. All rights reserved.