com.supermap.data

类 Datasets



  • public class Datasets
    extends Object

    数据集集合类。

    提供对数据集的管理功能,如创建、删除、重命名等操作。一个数据源中所有的数据集对象都由一个数据集集合对象来管理。

    数据集集合可以包含一种或多种类型的数据集,可以是矢量数据集,栅格数据集或影像数据集。 目前版本支持的数据集类型有:纯属性数据集(tabular dataset),点数据集(point dataset),线数据集(line dataset),面数据集(region dataset),文本数据集(text dataset),CAD数据集(CAD dataset),网络数据集(network dataset),影像数据集(image dataset)和栅格数据集(grid dataset)。

    数据集对象所属的数据源的 isReadOnly() 返回值为 true 时,则不允许创建和删除数据集。

    • 方法详细资料

      • getCount

        public int getCount()
        返回数据集集合中数据集的数量。 返回实时数量,即其它进程中数据集数量发生变化,能够实时获取变化情况,目前仅适用于Yukon、PostGIS、PostgreSQL、UDB、UDBX、Ganos、OraclePlus、OracleSpatial、DM、MySQL、SQLPlus引擎。
        返回:
        数据集集合中数据集的个数。
      • get

        public Dataset get(String name)
        返回指定名称的数据集信息,包括数据集类型、范围、投影、容限、索引类型、记录集个数。 返回数据集实时信息,即其它进程中数据集发生变更,能够实时获取变更信息,目前仅适用于Yukon、PostGIS、PostgreSQL、UDB、UDBX、Ganos、OraclePlus、OracleSpatial、DM、MySQL、SQLPlus引擎。 特别说明:PostGIS数据库中存在第三方来源的大小写不同的同名数据集时,引擎暂未对此场景做处理。
        参数:
        name - 指定的数据集的名称。
        返回:
        指定名称的数据集。
      • get

        public Dataset get(int index)
        返回指定序号的数据集信息,包括数据集类型、范围、投影、容限、索引类型、记录集个数。 返回数据集实时信息,即其它进程中数据集发生变更,能够实时获取变更信息,目前仅适用于Yukon、PostGIS、PostgreSQL、UDB、UDBX、Ganos、OraclePlus、OracleSpatial、DM、MySQL、SQLPlus引擎。
        参数:
        index - 指定数据集的序号。
        返回:
        指定序号的数据集。
        示范代码:
        请参见 DatasetGrid.buildPyramid() 的示例。
      • getDatasource

        public Datasource getDatasource()
        返回数据集集合所在的数据源。
        返回:
        数据集集合所在的数据源。
      • createAndAppendWithSmid

        public DatasetVector createAndAppendWithSmid(String name,
                                                     Recordset recordset)
        根据指定数据集名和记录集创建矢量数据集,并将记录集追加到数据集中并保持SmID字段值不变。
        参数:
        name - 数据集名称。
        recordset - 记录集数据。
        返回:
        新创建的带原始SmID数据的矢量数据集对象。
      • create

        public DatasetVector create(DatasetVectorInfo datasetInfo)
        根据指定的矢量数据集信息来创建矢量数据集。
        参数:
        datasetInfo - 矢量数据集信息。
        返回:
        新创建的矢量数据集对象。
      • create

        public DatasetVector create(DatasetVectorInfo datasetInfo,
                                    PrjCoordSys prj)
        根据指定的矢量数据集信息来创建矢量数据集。
        参数:
        datasetInfo - 矢量数据集信息。
        prj - 投影
        返回:
        新创建的矢量数据集对象。
      • create

        public DatasetGrid create(DatasetGridInfo datasetInfo)
        根据指定的栅格数据集信息来创建栅格数据集。
        参数:
        datasetInfo - 栅格数据集信息。
        返回:
        新创建的栅格数据集对象。
      • create

        public DatasetVolume create(DatasetVolumeInfo datasetInfo)
        根据指定的体数据集信息来创建体数据集。
        参数:
        datasetInfo - 体数据集信息。
        返回:
        新创建的体数据集对象。
      • create

        public DatasetImage create(DatasetImageInfo datasetInfo)
        根据指定的影像数据集信息来创建影像数据集。

        SuperMap iObjects Java 支持创建多波段影像数据集,通过 DatasetImageInfo.setBandCount 方法可以设置波段数目。

        如果是创建8位非灰度影像数据集,编码方式会从 DCT 自动调整为 LZW。

        参数:
        datasetInfo - 影像数据集信息。
        返回:
        新创建的影像数据集对象。
        示范代码:
        以下代码示范如何创建影像数据集,并把已有的影像数据更新到创建的数据集中。
         public void createAndUpdate() {
                    // 前提条件:已打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象,数据源中包含影像数据集"image"。
                        DatasetImage datasetImage1 = (DatasetImage) datasource.getDatasets().get("image");
        
                    // 以"image"数据集为模板创建新的数据集"newimage"
                    DatasetImageInfo datasetImageInfo = new DatasetImageInfo("newimage", datasetImage1 );
                        DatasetImage datasetImage= datasets.create(datasetImageInfo);
        
                        // 用"image"数据集更新"newimage"数据集
                        datasetImage.update(datasetImage1);
                }
         
      • create

        public DatasetTopology create(DatasetTopologyInfo datasetInfo)
        根据指定的拓扑数据集信息来创建拓扑数据集。

        注意:UDB 引擎类型的数据源不支持拓扑数据集的创建。

        参数:
        datasetInfo - 拓扑数据集信息。
        返回:
        成功则返回新创建的拓扑数据集对象。
        示范代码:
        请参见 DatasetImage.create(DatasetImageInfo) 方法的示例。
      • create

        public DatasetVector create(DatasetRelationshipInfo datasetInfo)
        根据指定的关系类数据集信息创建关系类数据集。
        参数:
        datasetInfo - 关系类数据集信息。
        返回:
        新创建的关系类数据集对象。
      • createGridCollection

        public DatasetGridCollection createGridCollection(String name,
                                                          PixelFormat pixFormat)
        已过时。 根据给定的名称和像素格式创建栅格数据集集合类型的数据集。
        参数:
        name - 给定的名称。
        pixFormat - 指定的像素格式。
        返回:
        栅格数据集集合类型的数据集。
        另请参阅:
        DatasetGridCollection 类的示例。
      • createGridCollection

        public DatasetGridCollection createGridCollection(DatasetGridCollectionInfo info)
        已过时。 根据给定的栅格数据集集合信息来创建栅格数据集集合。
        参数:
        info - 指定的栅格数据集集合信息。
        返回:
        新创建的栅格数据集集合。
        从以下版本开始:
        SuperMap iObjects Java 7.0.0
      • createImageCollection

        public DatasetImageCollection createImageCollection(String name)
        已过时。 根据给定的名称创建影像数据集集合类型的数据集。

        创建影像数据集集合类型的数据集不用指定集合的像素格式,默认统一采用 PixelFormat.RGB 的像素格式。

        参数:
        name - 给定的名称。
        返回:
        影像数据集集合类型的数据集。
        另请参阅:
        DatasetImageCollection 类的示例。
      • createImageCollection

        public DatasetImageCollection createImageCollection(DatasetImageCollectionInfo info)
        已过时。 根据给定的影像数据集集合信息来创建影像数据集集合。
        参数:
        info - 指定的影像数据集集合信息。
        返回:
        新创建的影像数据集集合。
        从以下版本开始:
        SuperMap iObjects Java 7.0.0
      • createFromTemplate

        public Dataset createFromTemplate(String name,
                                          Dataset templateDataset)
        根据指定的模板数据集创建新的数据集。

        在同一个数据源文件中,数据集名称必须唯一。通过 isAvailableDatasetName() 方法来判断数据集名称是否合法。

        注意:通过模板数据集创建数据集,是将模板数据集的结构进行复制,并不复制模板数据集的内容。

        模板数据集可以是下列三种数据集当中的一种:
        1. 创建矢量数据集的时,模板数据集只能是矢量数据集,创建的数据集与模板数据集同类型,同属性表结构;
        2. 创建栅格(Grid)数据集时,模板数据集只能是栅格(Grid)数据集,创建的数据集与模板数据集具有相同的栅格大小、长度、宽度,相同的字段结构、字符集——创建的数集复制了模板数据集的结构而并未复制内容;
        3. 创建影像(Image)数据集时,模板数据集必须是影像(Image)数据集(这一版本暂不提供此方法)。
        参数:
        name - 待创建的数据集名称,不能与数据源中已有数据集重名。
        templateDataset - 作为模板的数据集。
        返回:
        新创建的数据集。
      • delete

        public boolean delete(String name)
        用于删除指定名称的数据集。
        参数:
        name - 指定的数据集的名称。
        返回:
        如果删除成功,返回值为 true,否则为 false。
      • delete

        public boolean delete(int index)
        用于删除指定序号的数据集。
        参数:
        index - 指定的数据集的序号。
        返回:
        如果删除成功,返回值为 true,否则为 true。
      • deleteAll

        public void deleteAll()
        删除所有数据集。
      • isAvailableDatasetName

        public boolean isAvailableDatasetName(String name)
        判断用户传进来的数据集的名称是否合法。创建数据集时应检查其名称的合法性。

        数据集的名称限制:数据集名称的长度限制为30个字符(也就是可以为30个英文字母或者15个汉字),组成数据集名称的字符可以为字母、汉字、数字和下划线,数据集名称不可以用数字和下划线开头,数据集名称不可以和数据库的保留关键字冲突。

        参数:
        name - 待检查的数据集名称。
        返回:
        如果数据集名称合法,返回 true;否则,返回 false。
        示范代码:
        请参考 Datasource.copyDataset() 的示例。
      • isAvailableDatasetName

        public boolean isAvailableDatasetName(String name,
                                              DatasetType datasetType)
        判断用户传进来的数据集的名称是否合法。创建数据集时应检查其名称的合法性。

        数据集的名称限制:数据集名称的长度限制为udb引擎模型22个字符,网络25个字符,组成数据集名称的字符可以为字母、汉字、数字和下划线,数据集名称不可以用数字和下划线开头,数据集名称不可以和数据库的保留关键字冲突。

        参数:
        name - 待检查的数据集名称。
        datasetType - 待检查的数据集类型。
        返回:
        如果数据集名称合法,返回 true;否则,返回 false。
      • getAvailableDatasetName

        public String getAvailableDatasetName(String name)
        返回一个数据源中未被使用的数据集的名称。创建数据集时,数据集名称在同一个数据源文件中必须唯一,否则不能创建新的数据集,可以使用该方法返回一个合法的名称,但是该方法得到的名称不能保证一定符合您的最佳要求。

        数据集的名称限制:数据集名称的长度限制为30个字符(也就是可以为30个英文字母或者15个汉字),组成数据集名称的字符可以为字母、汉字、数字和下划线,数据集名称不可以用数字和下划线开头,数据集名称不可以和数据库的保留关键字冲突。

        参数:
        name - 数据集名称。
        返回:
        一个字符串,该字符串可以用作数据集名称。
      • getAvailableDatasetName

        public String getAvailableDatasetName(String name,
                                              DatasetType datasetType)
        返回一个数据源中未被使用的合法的数据集的名称。创建数据集时,数据集名称在同一个数据源文件中必须唯一,否则不能创建新的数据集,可以使用该方法返回一个合法的名称,但是该方法得到的名称不能保证一定符合您的最佳要求。

        数据集的名称限制:数据集名称的长度限制为udb引擎模型22个字符,网络25个字符,组成数据集名称的字符可以为字母、汉字、数字和下划线,数据集名称不可以用数字和下划线开头,数据集名称不可以和数据库的保留关键字冲突。

        参数:
        name - 数据集名称。
        datasetType - 数据集类型。
        返回:
        一个字符串,该字符串可以用作数据集名称。
      • rename

        public boolean rename(String oldName,
                              String newName)
        重命名数据集的名称。如果数据集为只读或者数据源以只读的方式打开,将不能重命名。
        参数:
        oldName - 数据集的原始名称。
        newName - 数据集的新名称。
        返回:
        如果对数据集重命名成功,则返回 true,否则返回 false。特别地,当命名不区分大小写的情况下,例如 datasets.rename(“world”,”WORLD”),返回值为 false,重命名失败。
      • contains

        public boolean contains(String name)
        检查当前数据源中是否包含指定名称的数据集。
        参数:
        name - 数据集名称。
        返回:
        如果该数据源中包含指定名称的数据集,返回值为 true,如果不包含,返回值为 false。
      • indexOf

        @Deprecated
        public int indexOf(String name)
        已过时。 不建议使用此方法。 返回给定数据集名称对应的数据集在数据集集合中所处的索引值。
        参数:
        name - 数据集名称
        返回:
        表示与给定数据集名称相同的数据集所处的位置。
      • addRenamingListener

        public void addRenamingListener(DatasetRenamingListener l)
        添加一个用于接收数据集重命名事件(DatasetRenamingEvent)的监听器。
        参数:
        l - 一个用于接收数据集重命名事件的监听器。
      • removeRenamingListener

        public void removeRenamingListener(DatasetRenamingListener l)
        移除一个用于接收数据集重命名事件(DatasetRenamingEvent)的监听器。
        参数:
        l - 一个用于接收数据集重命名事件的监听器。
      • addRenamedListener

        public void addRenamedListener(DatasetRenamedListener l)
        添加一个用于接收数据集重命名结束事件(DatasetRenamedEvent)的监听器。
        参数:
        l - 一个用于接收数据集重命名结束事件的监听器。
      • removeRenamedListener

        public void removeRenamedListener(DatasetRenamedListener l)
        移除一个用于接收数据集重命名结束事件(DatasetRenamedEvent)的监听器。
        参数:
        l - 一个用于接收数据集重命名结束事件的监听器。
      • addDeletingListener

        public void addDeletingListener(DatasetDeletingListener l)
        添加一个用于接收删除数据集事件(DatasetDeletingEvent)的监听器。
        参数:
        l - 一个用于接收删除数据集事件的监听器。
      • removeDeletingListener

        public void removeDeletingListener(DatasetDeletingListener l)
        移除一个用于接收删除数据集事件(DatasetDeletingEvent)的监听器。
        参数:
        l - 一个用于接收删除数据集事件的监听器。
      • addDeletedListener

        public void addDeletedListener(DatasetDeletedListener l)
        添加一个用于接收删除数据集结束事件(DatasetDeletedEvent)的监听器。
        参数:
        l - 一个用于接收删除数据集结束事件的监听器。
      • removeDeletedListener

        public void removeDeletedListener(DatasetDeletedListener l)
        移除一个用于接收删除数据集结束事件(DatasetDeletedEvent)的监听器。
        参数:
        l - 一个用于接收删除数据集结束事件的监听器。
      • addUnDeletedListener

        public void addUnDeletedListener(DatasetUnDeletedListener l)
        添加一个用于接收取消删除数据集事件(DatasetUnDeletedEvent)的监听器。
        参数:
        l - 一个用于接收取消删除数据集事件的监听器。
      • removeUnDeletedListener

        public void removeUnDeletedListener(DatasetUnDeletedListener l)
        移除一个用于接收取消删除数据集事件(DatasetUnDeletedEvent)的监听器。
        参数:
        l - 一个用于接收取消删除数据集事件的监听器。
      • addDeleteFailedListener

        public void addDeleteFailedListener(DatasetDeleteFailedListener l)
        添加一个用于接收删除数据集失败事件(DatasetDeleteFailedEvent)的监听器。
        参数:
        l - 一个用于接收删除数据集失败事件的监听器。
      • removeDeleteFailedListener

        public void removeDeleteFailedListener(DatasetDeleteFailedListener l)
        移除一个用于接收删除数据集失败事件(DatasetDeleteFailedEvent)的监听器。
        参数:
        l - 一个用于接收删除数据集失败事件的监听器。
      • addDeletingAllListener

        public void addDeletingAllListener(DatasetDeletingAllListener l)
        添加一个用于接收删除所有数据集事件(DatasetDeletingAllEvent)的监听器。
        参数:
        l - 一个用于接收删除所有数据集事件的监听器。
      • removeDeletingAllListener

        public void removeDeletingAllListener(DatasetDeletingAllListener l)
        移除一个用于接收删除所有数据集事件(DatasetDeletingAllEvent)的监听器。
        参数:
        l - 一个用于接收删除所有数据集事件的监听器。
      • addUnDeletedAllListener

        public void addUnDeletedAllListener(DatasetUnDeletedAllListener l)
        添加一个用于接收取消删除所有数据集事件(DatasetUnDeletedEvent)的监听器。
        参数:
        l - 一个用于接收取消删除所有数据集事件的监听器。
      • removeUnDeletedAllListener

        public void removeUnDeletedAllListener(DatasetUnDeletedAllListener l)
        移除一个用于接收取消删除所有数据集事件(DatasetUnDeletedEvent)的监听器。
        参数:
        l - 一个用于接收取消删除所有数据集事件的监听器。
      • addDeletedAllListener

        public void addDeletedAllListener(DatasetDeletedAllListener l)
        添加一个用于接收删除所有数据集结束事件(DatasetDeletedAllEvent)的监听器。
        参数:
        l - 一个用于接收删除所有数据集结束事件的监听器。
      • removeDeletedAllListener

        public void removeDeletedAllListener(DatasetDeletedAllListener l)
        移除一个用于接收删除所有数据集结束事件(DatasetDeletedAllEvent)的监听器。
        参数:
        l - 一个用于接收删除所有数据集结束事件的监听器。
      • addCreatedListener

        public void addCreatedListener(DatasetCreatedListener l)
        添加一个用于接收数据集创建结束事件(DatasetCreatedEvent)的监听器。
        参数:
        l - 一个用于接收数据集创建结束事件的监听器。
      • removeCreatedListener

        public void removeCreatedListener(DatasetCreatedListener l)
        移除一个用于接收数据集创建结束事件(DatasetCreatedEvent)的监听器。
        参数:
        l - 一个用于接收数据集创建结束事件的监听器。
      • refresh

        public void refresh()
        刷新数据集集合信息。
      • SetExpTable

        public DatasetVector SetExpTable(String strName)
        设置外挂表。

        注意:

        1. 当外挂表的表名不满足数据集名规则时自动获取一个可用的数据集名;
        2. 当删除、添加或者修改字段名时,必须重新打开数据源或者重新注册数据集才能正常操作;
        3. 待注册为外挂表数据集的表字段名不能为纯数字或者数据库关键字,否则查询出错;
        4. 注册的外挂表数据集不维护记录集个数,记录集个数始终为0;
        5. Altibase引擎外挂表数据集获取的字段信息为空,其他引擎可以正常获取。

        参数:
        strName - 指定的可作外挂表的用户表名。
        返回:
        成功返回相应的数据集,失败返回空。
      • getDatasetNames

        public String[] getDatasetNames()
        返回数据集集合中的所有数据集名称。 返回实时的数据集名称,即其它进程中数据集名称发生变更,能够实时获取变更信息,目前仅适用于Yukon、PostGIS、PostgreSQL、UDB、UDBX、Ganos、OraclePlus、OracleSpatial、DM、MySQL、SQLPlus引擎。
        返回:
        数据集集合中的所有数据集名称。
      • createDatasetMosaic

        public DatasetMosaic createDatasetMosaic(String name,
                                                 PrjCoordSys prjCoordSys)
        根据指定的数据集名称和投影信息,创建镶嵌数据集。
        参数:
        name - 指定创建的镶嵌数据集的名称。
        prjCoordSys - 指定镶嵌数据集的投影。
        返回:
        返回创建的镶嵌数据集。
      • createDatasetMosaic

        public DatasetMosaic createDatasetMosaic(String name,
                                                 PrjCoordSys prjCoordSys,
                                                 String productName)
        根据指定参数创建镶嵌数据集。
        参数:
        name - 数据集名称。
        prjCoordSys - 数据集投影。
        productName - (卫星)产品名称。
        返回:
        新创建的镶嵌数据集对象。
      • createDatasetMosaic

        @Deprecated
        public DatasetMosaic createDatasetMosaic(String name,
                                                              PrjCoordSys prjCoordSys,
                                                              String satelliteType,
                                                              String extraFieldFilePath)
        已过时。 
        根据指定参数创建镶嵌数据集。
        参数:
        name - 数据集名称。
        prjCoordSys - 数据集投影。
        satelliteType - 卫星类型名称,允许为空。
        extraFieldFilePath - 扩展字段文件路径,允许为空。
        返回:
        新创建的镶嵌数据集对象。
      • createDatasetMosaic4Satellite

        @Deprecated
        public DatasetMosaic createDatasetMosaic4Satellite(String name,
                                                                        PrjCoordSys prjCoordSys,
                                                                        String satelliteType,
                                                                        Map<String,String> extendAttributes)
        已过时。 
        根据指定参数创建镶嵌数据集。
        参数:
        name - 数据集名称。
        prjCoordSys - 数据集投影。
        satelliteType - 卫星类型名称,允许为空。
        extendAttributes - 扩展属性词典。
        返回:
        新创建的镶嵌数据集对象。
      • lock

        public void lock()
        对数据集集合加锁。
      • unlock

        public void unlock()
        对数据集集合解锁。

Copyright © 2021–2024 SuperMap. All rights reserved.