com.supermap.data
类 Datasets

java.lang.Object
  继承者 com.supermap.data.Datasets

public class Datasets
extends java.lang.Object

数据集集合类。

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

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

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


方法摘要
 void addCreatedListener(DatasetCreatedListener l)
          添加一个用于接收数据集创建结束事件(DatasetCreatedEvent)的监听器。
 void addDeletedAllListener(DatasetDeletedAllListener l)
          添加一个用于接收删除所有数据集结束事件(DatasetDeletedAllEvent)的监听器。
 void addDeletedListener(DatasetDeletedListener l)
          添加一个用于接收删除数据集结束事件(DatasetDeletedEvent)的监听器。
 void addDeletingAllListener(DatasetDeletingAllListener l)
          添加一个用于接收删除所有数据集事件(DatasetDeletingAllEvent)的监听器。
 void addDeletingListener(DatasetDeletingListener l)
          添加一个用于接收删除数据集事件(DatasetDeletingEvent)的监听器。
 void addRenamedListener(DatasetRenamedListener l)
          添加一个用于接收数据集重命名结束事件(DatasetRenamedEvent)的监听器。
 void addRenamingListener(DatasetRenamingListener l)
          添加一个用于接收数据集重命名事件(DatasetRenamingEvent)的监听器。
 boolean contains(java.lang.String name)
          检查当前数据源中是否包含指定名称的数据集。
 DatasetGrid create(DatasetGridInfo datasetInfo)
          根据指定的栅格数据集信息来创建栅格数据集。
 DatasetImage create(DatasetImageInfo datasetInfo)
          根据指定的影像数据集信息来创建影像数据集。
 DatasetTopology create(DatasetTopologyInfo datasetInfo)
          根据指定的拓扑数据集信息来创建拓扑数据集。
 DatasetVector create(DatasetVectorInfo datasetInfo)
          根据指定的矢量数据集信息来创建矢量数据集。
 DatasetVector create(DatasetVectorInfo datasetInfo, PrjCoordSys prj)
          根据指定的矢量数据集信息来创建矢量数据集。
 DatasetVolume create(DatasetVolumeInfo datasetInfo)
          根据指定的体数据集信息来创建体数据集。
 DatasetVector createAndAppendWithSmid(java.lang.String name, Recordset recordset)
          根据指定数据集名和记录集创建矢量数据集,并将记录集追加到数据集中并保持SmID字段值不变。
 DatasetMosaic createDatasetMosaic(java.lang.String name, PrjCoordSys prjCoordSys)
          根据指定的数据集名称和投影信息,创建镶嵌数据集。
 Dataset createFromTemplate(java.lang.String name, Dataset templateDataset)
          根据指定的模板数据集创建新的数据集。
 DatasetGridCollection createGridCollection(DatasetGridCollectionInfo datasetInfo)
          已过时。 根据给定的栅格数据集集合信息来创建栅格数据集集合。
 DatasetGridCollection createGridCollection(java.lang.String name, PixelFormat pixFormat)
          已过时。 根据给定的名称和像素格式创建栅格数据集集合类型的数据集。
 DatasetImageCollection createImageCollection(DatasetImageCollectionInfo datasetInfo)
          已过时。 根据给定的影像数据集集合信息来创建影像数据集集合。
 DatasetImageCollection createImageCollection(java.lang.String name)
          已过时。 根据给定的名称创建影像数据集集合类型的数据集。

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

 boolean delete(int index)
          用于删除指定序号的数据集。
 boolean delete(java.lang.String name)
          用于删除指定名称的数据集。
 void deleteAll()
          删除所有数据集。
 Dataset get(int index)
          返回指定序号的数据集信息,包括数据集类型、范围、投影、容限、索引类型、记录集个数。
 Dataset get(java.lang.String name)
          返回指定名称的数据集信息,包括数据集类型、范围、投影、容限、索引类型、记录集个数。
 java.lang.String getAvailableDatasetName(java.lang.String name)
          返回一个数据源中未被使用的数据集的名称。
 java.lang.String getAvailableDatasetName(java.lang.String name, DatasetType datasetType)
          返回一个数据源中未被使用的合法的数据集的名称。
 int getCount()
          返回数据集集合中数据集的数量。
 java.lang.String getDatasetNames()
          返回数据集集合中的所有数据集名称。
 Datasource getDatasource()
          返回数据集集合所在的数据源。
 int indexOf(java.lang.String name)
          已过时。 已废弃
 boolean isAvailableDatasetName(java.lang.String name)
          判断用户传进来的数据集的名称是否合法。
 boolean isAvailableDatasetName(java.lang.String name, DatasetType datasetType)
          判断用户传进来的数据集的名称是否合法。
 void removeCreatedListener(DatasetCreatedListener l)
          移除一个用于接收数据集创建结束事件(DatasetCreatedEvent)的监听器。
 void removeDeletedAllListener(DatasetDeletedAllListener l)
          移除一个用于接收删除所有数据集结束事件(DatasetDeletedAllEvent)的监听器。
 void removeDeletedListener(DatasetDeletedListener l)
          移除一个用于接收删除数据集结束事件(DatasetDeletedEvent)的监听器。
 void removeDeletingAllListener(DatasetDeletingAllListener l)
          移除一个用于接收删除所有数据集事件(DatasetDeletingAllEvent)的监听器。
 void removeDeletingListener(DatasetDeletingListener l)
          移除一个用于接收删除数据集事件(DatasetDeletingEvent)的监听器。
 void removeRenamedListener(DatasetRenamedListener l)
          移除一个用于接收数据集重命名结束事件(DatasetRenamedEvent)的监听器。
 void removeRenamingListener(DatasetRenamingListener l)
          移除一个用于接收数据集重命名事件(DatasetRenamingEvent)的监听器。
 boolean rename(java.lang.String oldName, java.lang.String newName)
          重命名数据集的名称。
 DatasetVector SetExpTable(java.lang.String strName)
          设置外挂表。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getCount

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

返回:
数据集集合中数据集的个数。

get

public Dataset get(java.lang.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() 的示例。

getDatasetNames

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

返回:
数据集集合中的所有数据集名称。

getDatasource

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

返回:
数据集集合所在的数据源。

create

public DatasetVector create(DatasetVectorInfo datasetInfo)
根据指定的矢量数据集信息来创建矢量数据集。

参数:
datasetInfo - 矢量数据集信息。
返回:
新创建的矢量数据集对象。

create

public DatasetVector create(DatasetVectorInfo datasetInfo,
                            PrjCoordSys prj)
根据指定的矢量数据集信息来创建矢量数据集。

参数:
datasetInfo - 矢量数据集信息。
prj - 投影
返回:
新创建的矢量数据集对象。

createAndAppendWithSmid

public DatasetVector createAndAppendWithSmid(java.lang.String name,
                                             Recordset recordset)
根据指定数据集名和记录集创建矢量数据集,并将记录集追加到数据集中并保持SmID字段值不变。

参数:
name - 数据集名称。
recordset - 记录集数据。
返回:
新创建的带原始SmID数据的矢量数据集对象。

create

public DatasetGrid create(DatasetGridInfo datasetInfo)
根据指定的栅格数据集信息来创建栅格数据集。

参数:
datasetInfo - 栅格数据集信息。
返回:
新创建的栅格数据集对象。

create

public DatasetVolume create(DatasetVolumeInfo datasetInfo)
根据指定的体数据集信息来创建体数据集。

参数:
datasetInfo - 体数据集信息。
返回:
新创建的体数据集对象。

create

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

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

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

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);
        }
 

createFromTemplate

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

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

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

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

参数:
name - 待创建的数据集名称,不能与数据源中已有数据集重名。
templateDataset - 作为模板的数据集。
返回:
新创建的数据集。

delete

public boolean delete(java.lang.String name)
用于删除指定名称的数据集。

参数:
name - 指定的数据集的名称。
返回:
如果删除成功,返回值为 true,否则为 false。

delete

public boolean delete(int index)
用于删除指定序号的数据集。

参数:
index - 指定的数据集的序号。
返回:
如果删除成功,返回值为 true,否则为 true。

deleteAll

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


isAvailableDatasetName

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

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

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

isAvailableDatasetName

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

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

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

getAvailableDatasetName

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

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

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

getAvailableDatasetName

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

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

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

rename

public boolean rename(java.lang.String oldName,
                      java.lang.String newName)
重命名数据集的名称。如果数据集为只读或者数据源以只读的方式打开,将不能重命名。

参数:
oldName - 数据集的原始名称。
newName - 数据集的新名称。
返回:
如果对数据集重命名成功,则返回 true,否则返回 false。特别地,当命名不区分大小写的情况下,例如 datasets.rename(“world”,”WORLD”),返回值为 false,重命名失败。

contains

public boolean contains(java.lang.String name)
检查当前数据源中是否包含指定名称的数据集。

参数:
name - 数据集名称。
返回:
如果该数据源中包含指定名称的数据集,返回值为 true,如果不包含,返回值为 false。

indexOf

public int indexOf(java.lang.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 - 一个用于接收删除数据集结束事件的监听器。

addDeletingAllListener

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

参数:
l - 一个用于接收删除所有数据集事件的监听器。

removeDeletingAllListener

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

参数:
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 - 一个用于接收数据集创建结束事件的监听器。

createGridCollection

public DatasetGridCollection createGridCollection(java.lang.String name,
                                                  PixelFormat pixFormat)
已过时。 根据给定的名称和像素格式创建栅格数据集集合类型的数据集。

参数:
name - 给定的名称。
pixFormat - 指定的像素格式。
返回:
栅格数据集集合类型的数据集。
另请参见:
DatasetGridCollection 类的示例。

createImageCollection

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

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

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

createGridCollection

public DatasetGridCollection createGridCollection(DatasetGridCollectionInfo datasetInfo)
已过时。 根据给定的栅格数据集集合信息来创建栅格数据集集合。

参数:
datasetInfo - 指定的栅格数据集集合信息。
返回:
新创建的栅格数据集集合。
从以下版本开始:
SuperMap iObjects Java 7.0.0

createImageCollection

public DatasetImageCollection createImageCollection(DatasetImageCollectionInfo datasetInfo)
已过时。 根据给定的影像数据集集合信息来创建影像数据集集合。

参数:
datasetInfo - 指定的影像数据集集合信息。
返回:
新创建的影像数据集集合。
从以下版本开始:
SuperMap iObjects Java 7.0.0

SetExpTable

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

注意:

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

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

createDatasetMosaic

public DatasetMosaic createDatasetMosaic(java.lang.String name,
                                         PrjCoordSys prjCoordSys)
根据指定的数据集名称和投影信息,创建镶嵌数据集。

参数:
name - 指定创建的镶嵌数据集的名称。
prjCoordSys - 指定镶嵌数据集的投影。
返回:
返回创建的镶嵌数据集。