com.supermap.data

类 Dataset

  • java.lang.Object
    • com.supermap.data.Dataset
  • 直接已知子类:
    DatasetGrid, DatasetImage, DatasetVector


    public abstract class Dataset
    extends java.lang.Object

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

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

    在 SuperMap 中有十八种类型的数据集,但目前版本支持的数据集主要有点数据集,线数据集,面数据集,文本数据集,纯属性表数据集和影像数据集。

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

    • 方法概要

      所有方法 实例方法 具体方法 
      限定符和类型 方法和说明
      void close()
      用于关闭当前数据集。
      Rectangle2D getBounds()
      返回数据集中包含所有对象的最小外接矩形。
      Datasource getDatasource()
      返回此数据集对象所属数据源对象。
      java.lang.String getDescription()
      返回用户加入的对数据集的描述信息。
      EncodeType getEncodeType()
      返回此数据集数据存储时的编码方式。
      DatasetGroup getGroup()
      获取该数据集所在的分组
      java.lang.String getName()
      返回此数据集的名称,是数据集的唯一标识。
      PrjCoordSys getPrjCoordSys()
      返回数据集的投影信息。
      java.lang.String getTableName()
      对数据库型数据源,返回此数据集在数据库中所对应的数据表名称;对文件型数据源,返回此数据集的存储属性的表名称(文件型数据源文件用.udb 文件存储空间数据,.udd 文件存储属性数据)。
      DatasetType getType()
      返回此数据集的类型。
      boolean isOpen()
      判断此数据集是否已经打开。
      boolean isReadOnly()
      返回当前数据集是否为只读。
      boolean open()
      用于打开数据集,准备对数据集进行操作。
      void setDescription(java.lang.String value)
      设置用户加入的对数据集的描述信息。
      void setName(java.lang.String name)
      设置此Dataset的名称。
      void setPrjCoordSys(PrjCoordSys prjCoordSys)
      设置数据集的投影信息。
      void setReadOnly(boolean readOnly)
      设置数据集是否只读
      • 从类继承的方法 java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 方法详细资料

      • getBounds

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

        public boolean isReadOnly()
        返回当前数据集是否为只读。
        1. 当数据源以只读方式打开时,返回 true,其中的数据集不允许被修改;
          • 对于矢量数据集(DatasetVector),不允许删除、修改和添加记录;
            对于影像数据集(DatasetImage),不允许设置其像素值;
        2. 如果数据源不是以只读方式打开,但数据集被设置为只读时也不能修改数据集,这时仍然返回 true。
        返回:
        一个布尔值指示当前数据集是否为只读。
        另请参阅:
        open()
        Example:
        请参见 Dataset.open() 方法的示例。
      • isOpen

        public boolean isOpen()
        判断此数据集是否已经打开。在数据源连接了数据,即数据源被打开之后,数据集默认是不打开数据集的,如果要对数据集的数据进行修改或其他操作,数据集必须是打开的,否则无法进行操作。可以通过该方法来判定数据集是否已被打开。
        返回:
        如果此数据集已经被打开,返回 true;否则返回 false。
        另请参阅:
        open()
        Example:
        请参见 Dataset.open() 方法的示例。
      • getDatasource

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

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

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

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

        public DatasetType getType()
        返回此数据集的类型。目前版本支持的数据集类型包括纯属性表数据集、点数据集、线数据集、面数据集、文本数据集和影像数据集(DatasetImage)。
        返回:
        此数据集的类型。
      • getEncodeType

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

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

        public void setPrjCoordSys(PrjCoordSys prjCoordSys)
        设置数据集的投影信息。
        • 当该方法设置为 null 时,该数据集的投影采用其所在数据源的投影。
        参数:
        prjCoordSys - 数据集的投影信息。
      • close

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

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

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

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

        public void setReadOnly(boolean readOnly)
        设置数据集是否只读
        参数:
        readOnly - 为true,设置数据集为只读
      • setName

        public void setName(java.lang.String name)
        设置此Dataset的名称。
        参数:
        name - 此Dataset的名称
      • getTableName

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

        public DatasetGroup getGroup()
        获取该数据集所在的分组
        返回:
        数据集所在的分组