com.supermap.data

类 DatasetImageCollection


  • 已过时。 
    不再支持该接口。 影像数据集集合类型的数据集类。

    影像数据集集合是一种数据集类型,派生于 Dataset,对该类型的数据集可以创建、更新和删除影像金字塔、重命名数据集等;它又具有集合的功能,能对集合中影像数据集进行添加、删除和追加等操作。

    能添加到影像数据集集合中影像数据有两种类型,一种是影像数据包括影像数据集 DatasetImage,另一种是影像插件所支持的影像文件(如 *.sit)。

    注意:

    1. 影像数据集集合类型的数据集默认为平面坐标系。
    2. 只有当集合中无子数据集时,对其设置投影才有效;有子数据集时,不允许修改集合的投影信息,即设置投影无效。
    3. 当添加的子数据集行列数大于5000的时候,添加到地图窗口,数据集和集合都没有金字塔的情况下,该子数据集在原始分辨率下才能显示。
    4. 在对影像数据集集合创建金字塔时,所指定的(NoData)无值会被忽略,因此,对于大量需要背景透明的影像数据,可以通过将背景色设置为无值,然后构建金字塔的方式来处理。

    @Deprecated
    public class DatasetImageCollection
    extends Dataset
    示范代码:
    以下代码示范如何创建影像数据集集合类型的数据集,并向其中添加影像数据。
     public void datasetImageCollectionExample() {
            // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象
            // 该数据源下有一个名为 Beijing 的影像数据集,在某路径下存在一个名为BeijingTerrian的影像文件
            Datasets datasets = datasource.getDatasets();
                     
                    // 取出数据源中名为 "Beijing" 的影像数据集(DatasetImage)
                DatasetImage datasetImage = (DatasetImage)datasets.get("Beijing");
                
                // 获取影像数据集的投影信息
                PrjCoordSys prj = datasetImage.getPrjCoordSys();
                 
                // 创建一个名为 “DTIC” 的影像数据集集合类型的数据集
                DatasetImageCollection datasetImageCollection = datasets.createImageCollection("DTIC");
                
                // 设置集合数据集的投影信息与影像数据集一致
                datasetImageCollection.setPrjCoordSys(prj);
                 
                // 创建一个映射对象
                Map<String,String> values = new HashMap<String, String>();
                values.put("image", datasetImage.getName());             
                values.put("image_1", "c:/SampleData/BeijingDEM/BeijingTerrian.SIT");
                 
                // 将数据源中名为"Beijing" 的影像数据集和 BeijingTerrian.SIT影像文件都添加到集合中
                datasetImageCollection.add(values);
                
                // 获取集合中影像数据集的个数
                int count = datasetImageCollection.getCount();
                 
                if(count!=2){
                    System.out.println("添加影像数据失败!");
                }
                
                datasetImageCollection.close();
        }
     
    • 方法详细资料

      • getCount

        public int getCount()
        已过时。 
        返回影像数据集集合中影像数据集的个数。
        返回:
        影像数据集集合中影像数据集的个数。
        默认值:
        默认值为 0。
      • getBandCount

        public int getBandCount()
        已过时。 
        返回影像数据集集合的波段个数。

        注:影像数据集集合中所有子数据集的具有相同的波段数。

        返回:
        影像数据集集合的波段个数。
        从以下版本开始:
        SuperMap iObjects Java 7.0.0
      • getNoData

        public double getNoData(int index)
        已过时。 
        返回影像数据集集合指定波段的无值。
        参数:
        index - 指定的波段索引号,从 0 开始。
        返回:
        影像数据集集合指定波段的无值。
        从以下版本开始:
        SuperMap iObjects Java 7.0.0
      • setNoData

        public void setNoData(double value,
                              int index)
        已过时。 
        设置影像数据集集合指定波段的无值,对所有子数据集有效,主要用于创建集合金字塔时,忽略子数据集无值。
        参数:
        value - 指定的无值。
        index - 指定的波段索引号,从 0 开始。
        从以下版本开始:
        SuperMap iObjects Java 7.0.0
      • getDataset

        public DatasetImage getDataset(String aliasName)
        已过时。 
        返回影像数据集集合中指定别名的影像数据集对象。
        参数:
        aliasName - 影像数据集的别名。
        返回:
        指定的别名对应的影像数据集对象。
      • get

        public String get(int index)
        已过时。 
        返回影像数据集集合中指定序号的影像数据集对象的别名。
        参数:
        index - 指定的序号。
        返回:
        指定序号的影像数据集对象的别名。
        抛出:
        IndexOutOfBoundsException - 当 index 小于 0 或 index 大于等于 getCount()返回值时,抛出 IndexOutOfBoundsException 异常。
      • indexOf

        public int indexOf(String aliasName)
        已过时。 
        返回指定别名对应的子数据集在影像数据集集合中的序号。
        参数:
        aliasName - 指定的别名。
        返回:
        指定别名对应的子数据集在影像数据集集合中的序号。
      • getAttributeDataset

        public DatasetVector getAttributeDataset()
        已过时。 
        返回记录影像数据集合信息的矢量数据集。

        返回的矢量数据集是一个面数据集,不允许用户修改。

        该面数据集的一个面对象对应一个子数据集。如果子数据集含有裁剪区域,则面对象即是每个子数据集的裁剪区域,如果子数据集不含有裁剪区域,则面对象是每个子数据集最小外接矩形。

        这个面数据集的字段除了包含系统字段外,还包含其他描述影像子数据集信息的字段,字段名称和字段中存储的信息含义如下表所示

        返回:
        记录影像数据集合信息的面数据集。
      • getPixelFormat

        public PixelFormat getPixelFormat()
        已过时。 
        返回影像数据集集合的像素格式。像素格式的详细信息请参考 PixelFormat 枚举类型。
        返回:
        影像数据集集合的像素格式。
        默认值:
        默认值为 PixelFormat.RGB
      • getHasPyramid

        public boolean getHasPyramid()
        已过时。 
        返回影像数据集集合是否创建金字塔。
        返回:
        true 表示已经创建,false 表示未创建。
      • getClipRegion

        public GeoRegion getClipRegion()
        已过时。 
        返回影像数据集集合的裁剪区域。

        影像数据集集合的裁剪区域用来控制所有子数据集的显示范围。

        调用该方法无法得到集合内的子数据集的裁剪区域。

        注意:

        1.当用户所设定的影像数据集集合的地理范围(即调用 DatasetImageCollection.SetGeoReference() 方法)与所设定的裁剪区域无重叠区域,影像数据集集合不显示。

        2.当重新设置影像数据集集合的地理范围,不自动修改影像数据集集合的裁剪区域。

        12个子数据集设置裁剪区域前的显示效果 12个子数据集设置裁剪多边形后显示效果
        返回:
        影像数据集集合的裁剪区域。
      • setClipRegion

        public void setClipRegion(GeoRegion value)
        已过时。 
        设置影像数据集集合的裁剪区域。

        影像数据集集合的裁剪区域用来控制所有子数据集的显示范围。

        调用该方法无法对集合内的子数据集设置裁剪区域。子数据集裁剪区域的需子影像数据集对象通过 DatasetImage#setClipRegion() 方法设置。

        注意:

        1.当用户所设定的影像数据集集合的地理范围(即调用 DatasetImageCollection.SetGeoReference() 方法)与所设定的裁剪区域无重叠区域,影像数据集集合不显示。

        2.当重新设置影像数据集集合的地理范围,不自动修改影像数据集集合的裁剪区域。

        参数:
        value - 裁剪区域。
      • getPalette

        public Colors getPalette()
        已过时。 
        返回影像数据集集合的颜色调色板。
        返回:
        颜色调色板对象,即颜色集合。
      • setPalette

        public void setPalette(Colors colors)
        已过时。 
        设置影像数据集集合的颜色调色板。

        影像数据集集合显示时使用子数据集自身的调色板。

        调用该方法无法设置集合内子数据集的调色板。

        参数:
        colors - 颜色调色板对象,即颜色集合。
      • add

        public boolean add(String name,
                           String aliasName)
        已过时。 
        将影像数据添加到影像数据集集合的尾部。影像数据包括影像数据集 DatasetImage 和影像插件所支持的影像文件。

        使用该方法有以下几点注意事项:

        1.目前只支持和影像数据集集合在同一数据源下的影像数据集的添加。

        2.所添加的影像数据的投影必须与影像数据集集合一致,否则不能加入集合。

        3.不限制添加影像数据的像素格式。但是建议一个集合中的各子数据集像素格式保持一致。

        4.若添加的影像数据具有多波段,则每个影像数据的波段数必须一致。目前不支持添加多波段的影像文件,仅支持添加同一数据源下的多波段影像数据集。

        5.所指定的别名必须合法且在集合中是唯一的,否则添加失败。

        参数:
        name - 影像数据的名称。若影像数据为 DatasetImage 时,该参数为数据集的名称;若为影像文件时,该参数为影像文件的全路径。
        aliasName - 添加到影像数据集集合中的影像数据集的别名,别名需合法且唯一。
        返回:
        添加是否成功,成功返回true,失败返回false。
      • add

        public boolean add(String name,
                           String aliasName,
                           boolean isTop)
        已过时。 
        将影像数据添加到影像数据集集合的最顶层或尾部。影像数据包括影像数据集 DatasetImage 和影像插件所支持的影像文件。

        使用该方法有以下几点注意事项:

        1.目前只支持和影像数据集集合在同一数据源下的影像数据集的添加。

        2.所添加的影像数据的投影必须与影像数据集集合一致,否则不能加入集合。

        3.不限制添加影像数据的像素格式。但是建议一个集合中的各子数据集像素格式保持一致。

        4.若添加的影像数据具有多波段,则每个影像数据的波段数必须一致。目前不支持添加多波段的影像文件,仅支持添加同一数据源下的多波段影像数据集。

        5.所指定的别名必须合法且在集合中是唯一的,否则添加失败。

        参数:
        name - 影像数据的名称。若影像数据为 DatasetImage 时,该参数为数据集的名称;若为影像文件时,该参数为影像文件的全路径。
        aliasName - 添加到影像数据集集合中的影像数据集的别名,别名需合法且唯一。
        isTop - 是否添加到最顶层,为true,则添加在最顶层,其索引值为0,反之显示在尾部。
        返回:
        添加是否成功,成功返回true,失败返回false。
      • add

        public boolean add(Map<String,String> aliasNameAndName)
        已过时。 
        以映射方式向影像数据集集合中添加影像数据。由于别名唯一,设置为键值,即键值为影像数据集的别名,值为影像数据的名称。

        使用该方法有以下几点注意事项:

        1.目前只支持和影像数据集集合在同一数据源下的影像数据集的添加。

        2.所添加的影像数据的投影必须与影像数据集集合一致,否则不能加入集合。

        3.不限制添加影像数据的像素格式。但是建议一个集合中的各子数据集像素格式保持一致。

        4.若添加的影像数据具有多波段,则每个影像数据的波段数必须一致。目前不支持添加多波段的影像文件,仅支持添加同一数据源下的多波段影像数据集。

        5.所指定的别名必须合法且在集合中是唯一的,否则添加失败。

        参数:
        values - 需要添加的影像数据别名和名称组成的映射对象,键值为影像数据集的别名,值为影像数据的名称。
        返回:
        添加是否成功,成功返回 true,否则返回 false。
      • insert

        public boolean insert(String name,
                              String aliasName,
                              int index)
        已过时。 
        影像数据到插入到影像数据集集合指定的位置处。影像数据包括影像数据集 DatasetImage 和影像插件所支持的影像文件。

        使用该方法有以下几点注意事项:

        1.目前只支持和影像数据集集合在同一数据源下的影像数据集的插入。

        2.所插入的影像数据的投影必须与影像数据集集合一致,否则不能插入到集合中。

        3.不限制插入的影像数据的像素格式。但是建议一个集合中的各子数据集像素格式保持一致。

        4.若插入的影像数据具有多波段,则每个影像数据的波段数必须一致。目前不支持插入多波段的影像文件,仅支持插入同一数据源下的多波段影像数据集。

        5.所指定的别名必须合法且在集合中是唯一的,否则插入失败。

        参数:
        name - 影像数据的名称。若影像数据为 DatasetImage 时,该参数为数据集的名称;若为影像文件时,该参数为影像文件的全路径。
        aliasName - 插入到影像数据集集合中的影像数据集的别名,别名需合法且唯一。
        index - 指定的索引值。
        返回:
        插入是否成功,成功返回 true,否则返回 false。
        抛出:
        IndexOutOfBoundsException - 当 index 小于 0 或 index 大于等于 getCount()返回值时,抛出 IndexOutOfBoundsException 异常。
      • append

        public boolean append(DatasetImageCollection datasetImageCollection)
        已过时。 
        向影像数据集集合对象中追加另外一个影像数据集集合。

        若追加成功,则所追加的影像数据集集合中的所有影像数据按照其原有顺序添加到被追加的集合尾部。

        参数:
        datasetCollection - 待追加的影像数据集集合对象。
        返回:
        追加是否成功,成功返回 true,否则返回 false。
      • remove

        public boolean remove(String aliasName)
        已过时。 
        根据指定的别名从影像数据集集合中移除影像数据集。

        注意:删除的只是影像数据集和影像文件在集合中的信息,与子数据集关联的同一数据源下的影像数据集和存放在磁盘上的影像文件不会被删除。

        参数:
        aliasName - 指定的影像数据集别名。
        返回:
        移除是否成功,成功返回 true ,否则返回 false。
      • remove

        public boolean remove(int index)
        已过时。 
        将影像数据集集合对象中指定序号处的影像数据集删除。

        注意:删除的只是影像数据集和影像文件在集合中的信息,与子数据集关联的同一数据源下的影像数据集和存放在磁盘上的影像文件不会被删除。

        参数:
        index - 要删除影像数据集的序号。
        返回:
        删除是否成功,成功返回true;否则返回false。
        抛出:
        IndexOutOfBoundsException - 当 index 小于 0 或 index 大于等于 getCount()返回值时,抛出 IndexOutOfBoundsException 异常。
      • removeAll

        public boolean removeAll()
        已过时。 
        移除影像数据集集合对象中所有的影像数据集。

        注意:删除的只是影像数据集和影像文件在集合中的信息,与子数据集关联的同一数据源下的影像数据集和存放在磁盘上的影像文件不会被删除。

        返回:
        移除是否成功,成功返回 true,否则返回 false。
      • synchronize

        public boolean synchronize()
        已过时。 
        同步影像数据集集合。

        为了确保集合相关信息的正确性和有效性,对影像数据集集合做了以下操作后,建议调用该方法同步集合:

        1.跨数据源复制影像数据集集合。

        2.修改了集合中子数据集所关联的原始影像数据集信息;

        3.改变原始的影像文件的路径或删除影像文件;

        4.删除影像数据集集合中的子数据集。

        注意:调用该方法,对于不存在的子数据集,将自动将其从影像数据集集合中移除。

        返回:
        同步是否成功,成功返回 true,否则返回 false。
      • changeOrder

        public boolean changeOrder(String aliasName,
                                   int index)
        已过时。 
        改变影像数据集在影像数据集集合中的位置。

        调整影像数据集集合中子数据集的顺序,可以改善集合的显示效果。

        注意:该方法建议在对影像数据集集合创建影像金字塔之前调用,以减少对集合金字塔的创建和更新。

        参数:
        aliasName - 需要改变位置的影像数据集的别名。
        position - 影像数据移动到集合中的索引值。
        返回:
        位置改变是否成功,成功返回 true,否则返回 false。
        抛出:
        IndexOutOfBoundsException - 当 index 小于 0 或 index 大于等于 getCount()返回值时,抛出 IndexOutOfBoundsException 异常。
      • buildPyramid

        public boolean buildPyramid()
        已过时。 
        为影像数据集集合对象创建影像金字塔。目的是加快全幅显示速度。

        在对影像数据集集合创建金字塔时,所指定的(NoData)无值会被忽略,因此,对于大量需要背景透明的影像数据,可以通过将背景色设置为无值,然后构建金字塔的方式来处理。

        返回:
        创建是否成功,成功返回 true;否则返回 false。
      • removePyramid

        public boolean removePyramid()
        已过时。 
        删除影像数据集集合对象的影像金字塔。
        返回:
        删除是否成功,成功返回 true,否则为 false。
      • updatePyramid

        public boolean updatePyramid(Rectangle2D value)
        已过时。 
        根据指定范围更新影像数据集集合的影像金字塔。

        当对影像数据集集合执行以下操作后,需要调用该方法:

        1.修改子数据集的调色板、裁剪区域;

        2.调整子数据集的顺序,执行添加、删除子数据集等操作;

        3.当添加的子数据集的范围在已有金字塔范围之外。

        参数:
        value - 指定的范围。
        返回:
        更新是否成功,成功返回 true,否则返回 false。
      • isAvailableAliasName

        public boolean isAvailableAliasName(String name)
        已过时。 
        判断传入字符串是否是一个合法的影像数据集集合的别名。
        参数:
        name - 输入的字符串。
        返回:
        传入的字符串合法返回 true,不合法返回false。
      • getAvailableAliasName

        public String getAvailableAliasName(String name)
        已过时。 
        根据传入字符串获取一个合法的影像数据集集合的别名。
        参数:
        name - 输入的字符串。
        返回:
        一个合法的影像数据集集合的别名。
      • rename

        public boolean rename(String aliasName,
                              String newAliasName)
        已过时。 
        重命名影像数据集集合的别名。重命名不区分大小写。

        如果数据源以只读的方式打开,将不能重命名。

        参数:
        aliasName - 原始的别名。
        newAliasName - 新的别名。
        返回:
        重命名是否成功,成功返回 true,否则返回 false。
      • addRenamingListener

        public void addRenamingListener(DatasetCollectionRenameListener l)
        已过时。 
        添加一个用于接收对影像数据集集合中的子数据集重命名事件(DatasetCollectionRenameEvent)的监听器。
        参数:
        l - 一个用于接收对影像集合数据集的子数据集重命名事件的监听器。
      • removeRenamingListener

        public void removeRenamingListener(DatasetCollectionRenameListener l)
        已过时。 
        移除一个用于接收对影像数据集集合中的子数据集重命名事件(DatasetCollectionRenameEvent)的监听器。
        参数:
        l - 一个用于接收对影像集合数据集的子数据集重命名事件的监听器。
      • addRenamedListener

        public void addRenamedListener(DatasetCollectionRenameListener l)
        已过时。 
        添加一个用于接收对影像数据集集合中的子数据集重命名结束事件(DatasetCollectionRenameEvent)的监听器。
        参数:
        l - 一个用于接收对影像数据集集合中的子数据集重命名结束事件的监听器。
      • removeRenamedListener

        public void removeRenamedListener(DatasetCollectionRenameListener l)
        已过时。 
        移除一个用于接收对影像数据集集合中的子数据集重命名结束事件(DatasetCollectionRenameEvent)的监听器。
        参数:
        l - 一个用于接收对影像数据集集合中的子数据集重命名结束事件的监听器。
      • addRemovingListener

        public void addRemovingListener(DatasetCollectionListener l)
        已过时。 
        添加一个用于接收删除影像数据集集合中的子数据集事件(DatasetCollectionEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中的子数据集事件的监听器。
      • removeRemovingListener

        public void removeRemovingListener(DatasetCollectionListener l)
        已过时。 
        移除一个用于接收删除影像数据集集合中的子数据集事件(DatasetCollectionEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中的子数据集事件的监听器。
      • addRemovedListener

        public void addRemovedListener(DatasetCollectionListener l)
        已过时。 
        添加一个用于接收删除影像数据集集合中的子数据集结束事件(DatasetCollectionEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中的子数据集结束事件的监听器。
      • removeRemovedListener

        public void removeRemovedListener(DatasetCollectionListener l)
        已过时。 
        移除一个用于接收删除影像数据集集合中的子数据集结束事件(DatasetCollectionEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中的子数据集结束事件的监听器。
      • addRemovingAllListener

        public void addRemovingAllListener(DatasetCollectionRemoveAllListener l)
        已过时。 
        添加一个用于接收删除影像数据集集合中所有子数据集事件(DatasetCollectionRemoveAllEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中所有子数据集事件的监听器。
      • removeRemovingAllListener

        public void removeRemovingAllListener(DatasetCollectionRemoveAllListener l)
        已过时。 
        移除一个用于接收删除影像数据集集合中所有子数据集事件(DatasetCollectionRemoveAllEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中所有子数据集事件的监听器。
      • addRemovedAllListener

        public void addRemovedAllListener(DatasetCollectionRemoveAllListener l)
        已过时。 
        添加一个用于接收删除影像数据集集合中所有子数据集结束事件(DatasetCollectionRemoveAllEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中所有子数据集结束事件的监听器。
      • removeRemovedAllListener

        public void removeRemovedAllListener(DatasetCollectionRemoveAllListener l)
        已过时。 
        移除一个用于接收删除影像数据集集合中所有子数据集结束事件(DatasetCollectionRemoveAllEvent)的监听器。
        参数:
        l - 一个用于接收删除影像数据集集合中所有子数据集结束事件的监听器。
      • addAddedListener

        public void addAddedListener(DatasetCollectionListener l)
        已过时。 
        添加一个用于接收向影像数据集集合中添加子数据集结束事件(DatasetCollectionEvent)的监听器。
        参数:
        l - 一个用于接收向影像数据集集合中添加子数据集结束事件的监听器。
      • removeAddedListener

        public void removeAddedListener(DatasetCollectionListener l)
        已过时。 
        移除一个用于接收向影像数据集集合中添加子数据集结束事件(DatasetCollectionEvent)的监听器。
        参数:
        l - 一个用于接收向影像数据集集合中添加子数据集结束事件的监听器。
      • addOrderChangedListener

        public void addOrderChangedListener(DatasetCollectionChangeOrderListener l)
        已过时。 
        添加一个用于接收改变影像数据集集合中子数据集位置事件(DatasetCollectionChangeOrderEvent)的监听器。
        参数:
        l - 一个用于接收改变影像数据集集合中子数据集位置事件的监听器。
      • removeOrderChangedListener

        public void removeOrderChangedListener(DatasetCollectionChangeOrderListener l)
        已过时。 
        移除一个用于接收改变影像数据集集合中子数据集位置事件(DatasetCollectionChangeOrderEvent)的监听器。
        参数:
        l - 一个用于接收改变影像数据集集合中子数据集位置事件的监听器。

Copyright © 2021–2024 SuperMap. All rights reserved.