com.supermap.data
类 Dataset

java.lang.Object
  继承者 com.supermap.data.Dataset
直接已知子类:
DatasetGrid, DatasetGridCollection, DatasetImage, DatasetImageCollection, DatasetMosaic, DatasetTopology, DatasetVector, DatasetVolume

public abstract class Dataset
extends java.lang.Object

所有数据集类型(如矢量数据集,栅格数据集等)的基类。提供各数据集共有的方法和事件。

数据集一般为存储在一起的相关数据的集合;根据数据类型的不同,分为矢量数据集和栅格数据集,以及为了处理特定问题而设计的如拓扑数据集,网络数据集等。数据集是 GIS 数据组织的最小单位。其中矢量数据集是由同种类型空间要素组成的集合,所以也可以称为要素集。根据要素的空间特征的不同,矢量数据集又分为点数据集,线数据集,面数据集等,各矢量数据集是空间特征和性质相同而组织在一起的数据的集合。而栅格数据集由像元阵列组成,在表现要素上比矢量数据集欠缺,但是可以很好的表现空间现象的位置关系。栅格数据集包括影像数据集和栅格数据集。

在 SuperMap 中有十八种类型的数据集,但目前版本支持的数据集主要有点数据集,线数据集,面数据集,文本数据集,复合数据集,网络数据集,影像数据集和栅格数据集。

对数据集进行操作后必须调用 Workspace.dispose()方法,否则数据修改的内容不能被保存。


方法摘要
 void addClosedListener(DatasetClosedListener l)
          添加一个用于接收数据集关闭结束事件(DatasetClosedEvent)的监听器。
 void addClosingListener(DatasetClosingListener l)
          添加一个用于接收数据集关闭事件(DatasetClosingEvent)的监听器。
 void addSteppedListener(SteppedListener l)
          添加一个用于接收进度条事件(SteppedEvent)的监听器。
 void close()
          用于关闭当前数据集。
 void dispose()
          释放该对象所占用的资源。
 Rectangle2D getBounds()
          返回数据集中包含所有对象的最小外接矩形。
 Datasource getDatasource()
          返回此数据集对象所属数据源对象。
 java.lang.String getDescription()
          返回用户加入的对数据集的描述信息。
 EncodeType getEncodeType()
          返回此数据集数据存储时的编码方式。
 java.lang.String getExtInfo()
          返回用户加入的对数据集的附加信息。
 LockStateType getLockState()
          获取数据集的内存锁状态。
 java.lang.String getName()
          返回此数据集的名称,是数据集的唯一标识。
 PrjCoordSys getPrjCoordSys()
          返回数据集的投影信息。
 java.lang.String getTableName()
          对数据库型数据源,返回此数据集在数据库中所对应的数据表名称;对文件型数据源,返回此数据集的存储属性的表名称(文件型数据源文件用.udb 文件存储空间数据,.udd 文件存储属性数据)。
 DatasetType getType()
          返回此数据集的类型。
 boolean hasPrjCoordSys()
          判断数据集是否有投影,即是否有自己的投影。
 boolean hasVersion()
          判断数据集是否有版本,即是否被版本化。
 boolean isOpen()
          判断此数据集是否已经打开。
 boolean isReadOnly()
          返回当前数据集是否为只读。
 boolean open()
          用于打开数据集,准备对数据集进行操作。
 void removeClosedListener(DatasetClosedListener l)
          移除一个用于接收数据集关闭结束事件(DatasetClosedEvent)的监听器。
 void removeClosingListener(DatasetClosingListener l)
          移除一个用于接收数据集关闭事件(DatasetClosingEvent)的监听器。
 void removeSteppedListener(SteppedListener l)
          移除一个用于接收进度条事件(SteppedEvent)的监听器。
 void setBounds(Rectangle2D value)
          设置数据集中包含所有对象的最小外接矩形。
 void setDescription(java.lang.String value)
          设置用户加入的对数据集的描述信息。
 void setExtInfo(java.lang.String value)
          设置用户加入的对数据集的附加信息。
 boolean setLockState(LockStateType lockType)
          数据集设置内存锁状态。
 void setPrjCoordSys(PrjCoordSys prjCoordSys)
          设置数据集的投影信息。
 void setReadOnly(boolean value)
          设置当前数据集是否为只读。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getBounds

public Rectangle2D getBounds()
返回数据集中包含所有对象的最小外接矩形。对于矢量数据集来说,为数据集中所有对象的最小外接矩形;对于栅格数据集来说,为当前栅格或影像的地理范围。

返回:
数据集中包含所有对象的最小外接矩形。

setBounds

public void setBounds(Rectangle2D value)
设置数据集中包含所有对象的最小外接矩形。对于矢量数据集来说,为数据集中所有对象的最小外接矩形;对于栅格数据集来说,为当前栅格或影像的地理范围。

参数:
value - 数据集中包含所有对象的最小外接矩形。

isReadOnly

public boolean isReadOnly()
返回当前数据集是否为只读。
  1. 当数据源以只读方式打开时,返回 true,其中的数据集不允许被修改;
    • 对于矢量数据集(DatasetVector),不允许删除、修改和添加记录;
      对于影像数据集(DatasetImage),不允许设置其像素值;
      对于栅格数据集(DatasetGrid),不允许设置其栅格值。
  2. 如果数据源不是以只读方式打开,但数据集被设置为只读时也不能修改数据集,这时仍然返回 true。

返回:
一个布尔值指示当前数据集是否为只读。
另请参见:
open()
示例:
请参见 Dataset.open() 方法的示例。

setReadOnly

public void setReadOnly(boolean value)
设置当前数据集是否为只读。

当数据源以只读方式打开时,其中的数据集不允许被修改;如果数据源不是以只读方式打开,但数据集被设置为只读时也不能修改数据集。

参数:
value - 指定当前数据集是否可读。
另请参见:
open()
示例:
请参见 Dataset.open() 方法的示例。

isOpen

public boolean isOpen()
判断此数据集是否已经打开。在数据源连接了数据,即数据源被打开之后,数据集默认是不打开数据集的,如果要对数据集的数据进行修改或其他操作,数据集必须是打开的,否则无法进行操作。可以通过该方法来判定数据集是否已被打开。

返回:
如果此数据集已经被打开,返回 true;否则返回 false。
另请参见:
open()
示例:
请参见 Dataset.open() 方法的示例。

getDatasource

public Datasource getDatasource()
返回此数据集对象所属数据源对象。

返回:
此数据集对象所属数据源对象。

getDescription

public java.lang.String getDescription()
返回用户加入的对数据集的描述信息。

返回:
用户加入的对数据集的描述信息。

setDescription

public void setDescription(java.lang.String value)
设置用户加入的对数据集的描述信息。

参数:
value - 用户加入的对数据集的描述信息。
示例:
以下代码示范如何为数据集写入描述信息。
 public void setDescriptionTest() {
        // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象
        // 从数据源中取出数据集,为数据集写入描述信息
        Dataset dataset = datasource.getDatasets().get("World");
        dataset.setDescription("世界地图");
        String description = dataset.getDescription();
        System.out.println("数据集描述信息为:" + description);
    }
 

getExtInfo

public java.lang.String getExtInfo()
返回用户加入的对数据集的附加信息。

注意:字符串长度不能超过2048。

返回:
用户加入的对数据集的附加信息。

setExtInfo

public void setExtInfo(java.lang.String value)
设置用户加入的对数据集的附加信息。

参数:
value - 用户加入的对数据集的附加信息。
示例:
以下代码示范如何为数据集写入附加信息。
 public void setExtInfoTest() {
        // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象
        // 从数据源中取出数据集,为数据集写入描述信息
        Dataset dataset = datasource.getDatasets().get("World");
        dataset.setExtInfo("行政分布");
        String extInfo = dataset.getExtInfo();
        System.out.println("数据集附加信息为:" + extInfo);
    }
 

getName

public java.lang.String getName()
返回此数据集的名称,是数据集的唯一标识。该标识不区分大小写。

注意数据集使用名称作为唯一标识,而数据源使用别名作为唯一标识,数据集的名称是可以通过数据集集合对象(Datasets)的rename 方法 被修改的,而数据源的别名则不可被修改。

返回:
此数据集的名称。

getTableName

public java.lang.String getTableName()
对数据库型数据源,返回此数据集在数据库中所对应的数据表名称;对文件型数据源,返回此数据集的存储属性的表名称(文件型数据源文件用.udb 文件存储空间数据,.udd 文件存储属性数据)。

返回:
数据库型数据源在数据库中所对应的数据表名称或文件型数据源的存储属性的表名称。

getType

public DatasetType getType()
返回此数据集的类型。目前版本支持的数据集类型包括纯属性表数据集、点数据集、线数据集、面数据集、文本数据集、复合数据集等矢量数据集(DatasetVector),栅格数据集(DatasetGrid),影像数据集(DatasetImage),以及网络数据集(DatasetNetwork)。

返回:
此数据集的类型。

getEncodeType

public EncodeType getEncodeType()
返回此数据集数据存储时的编码方式。对数据集采用压缩编码方式,可以减少数据存储所占用的空间,降低数据传输时的网络负载和服务器的负载。矢量数据集支持的编码方式有Byte,Int16,Int24,Int32,SGL,LZW,DCT,也可以指定为不使用编码方式。光栅数据支持的编码方式有DCT,SGL,LZW 或不使用编码方式。具体请参见EncodeType类型。

返回:
此数据集数据存储时的编码方式。
另请参见:
EncodeType

getPrjCoordSys

public PrjCoordSys getPrjCoordSys()
返回数据集的投影信息。

返回:
数据集的投影信息。
示例:
以下代码示范如何查看数据集的投影。
 public void getPrjCoordSysTest() {
        // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据库型数据源 datasource 对象
        // 从数据源中取出数据集,查看数据集的投影
        Dataset dataset = datasource.getDatasets().get("World");
        PrjCoordSys prjCoordSys = dataset.getPrjCoordSys();
    }
 

setPrjCoordSys

public void setPrjCoordSys(PrjCoordSys prjCoordSys)
设置数据集的投影信息。

参数:
prjCoordSys - 数据集的投影信息。

hasVersion

public boolean hasVersion()
判断数据集是否有版本,即是否被版本化。如果被版本化,返回 true,否则返回 false。

返回:
如果被版本化,返回 true,否则返回 false。

hasPrjCoordSys

public boolean hasPrjCoordSys()
判断数据集是否有投影,即是否有自己的投影。如果有投影,返回 true,否则返回 false。

返回:
如果有投影,返回 true,否则返回 false。

close

public void close()
用于关闭当前数据集。对于矢量数据集,调用该方法后,所有由该数据集查询出来的记录集将会被释放。如果此数据集正在显示,必须先关闭显示窗口,再调用该方法进行关闭,否则会出现错误。

示例:
请参见 Dataset.open() 方法的示例。

open

public boolean open()
用于打开数据集,准备对数据集进行操作。在数据源连接了数据,即数据源被打开之后,数据集默认是不打开的,如果要对数据集的数据进行修改或其他操作,数据集必须是打开的,否则无法进行操作。可以先使用 isOpen 方法来判断一下数据集是否已经被打开。

因此,在对数据集进行各种操作之前,需要先打开该数据集,即调用 Dataset.open() 方法。

返回:
如果成功打开数据集,返回 true,否则返回 false。
示例:
以下代码示范如何为打开数据集。
 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();
        }
    }
 

addClosingListener

public void addClosingListener(DatasetClosingListener l)
添加一个用于接收数据集关闭事件(DatasetClosingEvent)的监听器。

参数:
l - 一个用于接收数据集关闭事件的监听器。

removeClosingListener

public void removeClosingListener(DatasetClosingListener l)
移除一个用于接收数据集关闭事件(DatasetClosingEvent)的监听器。

参数:
l - 一个用于接收数据集关闭事件的监听器。

addClosedListener

public void addClosedListener(DatasetClosedListener l)
添加一个用于接收数据集关闭结束事件(DatasetClosedEvent)的监听器。

参数:
l - 一个用于接收数据集关闭结束事件的监听器。

removeClosedListener

public void removeClosedListener(DatasetClosedListener l)
移除一个用于接收数据集关闭结束事件(DatasetClosedEvent)的监听器。

参数:
l - 一个用于接收数据集关闭结束事件的监听器。

addSteppedListener

public void addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。

removeSteppedListener

public void removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。

getLockState

public LockStateType getLockState()
获取数据集的内存锁状态。

返回:
锁的状态。

setLockState

public boolean setLockState(LockStateType lockType)
数据集设置内存锁状态。

参数:
lockType - 锁的类型。 指定的索引名称。
返回:
一个布尔值,返回是否设置成功。

dispose

public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。