com.supermap.mapping
类 Selection

java.lang.Object
  继承者 com.supermap.mapping.Selection

public class Selection
extends java.lang.Object

选择集类。

该类用于处理地图上被选中的对象。与该类紧密相连的类是 Recordset 记录集类。通常可以通过选择集类返回地图的选择信息或设置地图上的选中情况。通过与 Recordset 的交互,就可以处理与选中对象相对应的数据。

假设打开了一个工作空间 workspace 对象,工作空间中存在名为 World 的数据源。

示例:
以下代码示范了从记录集获取选择集,并统计选择集里人口数量的最大值(Pop_1994 字段存储的是人口数量值)。

假设打开了一个工作空间 workspace 对象,工作空间中存在名为 World 的数据源。

 public void selectionTest() {
        // 返回数据集,该数据集包含表示人口数量的 Pop_1994 字段
        DatasetVector datasetvector = (DatasetVector) workspace.getDatasources().get(0).getDatasets().get("World");
        Layer layer= m_mapControl.getMap().getLayers().add(datasetvector,true);

        // 根据 ID 进行查询,返回查询结果记录集
        Recordset recordset = datasetvector.query(new int[] {0, 1, 2, 3, 4, 5,6, 7, 8, 9, 10, 11, 18, 19},CursorType.STATIC);

        // 从该记录集获取选择集
        Selection selection = new Selection();
        selection.fromRecordset(recordset);

        // 移除从序号1到10的几何对象
        selection.removeRange(1, 10);

        // 设置选择集的风格
        GeoStyle style = new GeoStyle();
        style.setLineColor(java.awt.Color.cyan);
        style.setLineSymbolID(5);
        style.setLineWidth(3.0);
        selection.setStyle(style);

        layer.setSelection(selection);
        m_mapControl.getMap().refresh();

        // 将选择集转化为记录集
        Recordset recordset1 = selection.toRecordset();

        // 统计人口最大值
        double maxValue = recordset1.statistic("Pop_1994", StatisticMode.MAX);
        System.out.println("人口最大值" + maxValue);

        // 清空选择集
        selection.clear();

        // 释放资源
        recordset1.dispose();
        recordset.dispose();
        selection.dispose();
    }
 

构造方法摘要
Selection()
          默认构造函数,构造一个新的 Selection 对象。
Selection(DatasetVector dataset)
          根据指定的参数构造 Selection 类的新实例。
Selection(Selection selection)
          拷贝构造函数,根据给定的 Selection 对象构造一个与其完全相同的新对象。
 
方法摘要
 int add(int geometryID)
          用于向选择集中加入几何对象。
 int add(long geometryID)
          向选择集添加几何对象。
 int add(java.lang.String geometryID)
          向选择集添加几何对象。
 int addRange(int[] geometryIDs)
          用几何对象的 ID 数组指定一系列几何对象,将其批量加入到选择集中。
 int addRange(long[] geometryIDs)
          向选择集添加一组几何对象。
 int addRange(java.lang.String[] geometryIDs)
          向选择集添加一组几何对象。
 void clear()
          将选择集清空,这样被选中的对象将全部恢复到未选中状态。
 void dispose()
          释放该对象所占用的资源。
 boolean fromRecordset(Recordset recordset)
          用于把一个记录集转化为选择集(即记录集所对应的对象全部呈选中状态)。
 int get(int index)
          返回选择集中指定几何对象的系统 ID(即为其属性数据中 SmID 字段的值)。
 int getCount()
          返回选择集中几何对象的个数。
 DatasetVector getDataset()
          返回选择集中几何对象所在的数据集。
 GeoStyle getStyle()
          返回选择集几何对象的显示风格。
 boolean getStyleOptions(StyleOptions styleOptions)
          返回自定义选择集高亮风格是否起作用。
 java.lang.Object getVariantID(int index)
          返回选择集中指定序号几何对象的系统 ID(属性表中 SmID 字段值) ,ID支持int32、int64、String 类型。
 boolean isDefaultStyleEnabled()
          返回是否使用默认选择风格。
 boolean remove(int geometryID)
          用于从选择集中删除一个几何对象,该几何对象由原来的呈选中状态变为非选中状态。
 boolean remove(long geometryID)
          从选择集移除几何对象。
 boolean remove(java.lang.String geometryID)
          从选择集移除几何对象。
 int removeRange(int index, int count)
          用于从选择集中删除指定的若干几何对象,这些几何对象由原来的选中状态变为非选中状态。
 void setDataset(DatasetVector dataset)
          设置选择集中几何对象所在的数据集。
 void setDefaultStyleEnabled(boolean value)
          设置是否使用默认选择风格。
 void setStyle(GeoStyle style)
          设置选择集几何对象的显示风格。
 void setStyleOptions(StyleOptions styleOptions, boolean isEnable)
          设置自定义选择集高亮风格是否起作用。
 Recordset toRecordset()
          用于把选择对象转化为记录集。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Selection

public Selection(DatasetVector dataset)
根据指定的参数构造 Selection 类的新实例。

参数:
dataset - 指定的数据集。

Selection

public Selection(Selection selection)
拷贝构造函数,根据给定的 Selection 对象构造一个与其完全相同的新对象。

参数:
selection - 指定的 Selection 对象。

Selection

public Selection()
默认构造函数,构造一个新的 Selection 对象。

方法详细信息

getCount

public int getCount()
返回选择集中几何对象的个数。

返回:
选择集中几何对象的个数。
默认值:
默认值为 0。即选择集中没有几何对象。

getDataset

public DatasetVector getDataset()
返回选择集中几何对象所在的数据集。

返回:
选择集中几何对象所在的数据集。
默认值:
默认值为 null。

setDataset

public void setDataset(DatasetVector dataset)
设置选择集中几何对象所在的数据集。

参数:
dataset - 选择集中几何对象所在的数据集。

get

public int get(int index)
返回选择集中指定几何对象的系统 ID(即为其属性数据中 SmID 字段的值)。

参数:
index - 指定几何对象的序列号。
返回:
选择集中指定几何对象的系统 ID。

getStyle

public GeoStyle getStyle()
返回选择集几何对象的显示风格。

选择集几何对象的显示风格默认不是半透明风格,如果用户需要半透明风格,需要使用Selection.setStyle()方法中的 GeoStyle 类型的参数进行设置,即通过 GeoStyle 对象的 setFillBackOpaque() 和 setFillOpaqueRate()方法自己设置。

返回:
选择集几何对象的显示风格。

setStyle

public void setStyle(GeoStyle style)
设置选择集几何对象的显示风格。

参数:
style - 选择集几何对象的显示风格。

isDefaultStyleEnabled

public boolean isDefaultStyleEnabled()
返回是否使用默认选择风格。如果设置为 true,则设置的选择风格将无效。

返回:
一个布尔值,使用默认选择风格返回 true,否则返回 false。

setDefaultStyleEnabled

public void setDefaultStyleEnabled(boolean value)
设置是否使用默认选择风格。如果设置为 true,则设置的选择风格将无效。

参数:
value - 是否使用默认选择风格。

add

public int add(int geometryID)
用于向选择集中加入几何对象。

参数:
geometryID - 新添加的几何对象的 ID 值(即其属性数据中 SmID 字段的值)。
返回:
新添几何对象在选择集中的序号。

addRange

public int addRange(int[] geometryIDs)
用几何对象的 ID 数组指定一系列几何对象,将其批量加入到选择集中。

参数:
geometryIDs - 新添加的一系列几何对象的 ID(即其属性数据中 SmID 字段的值)组成的数组。
返回:
成功添加的几何对象的个数。

remove

public boolean remove(int geometryID)
用于从选择集中删除一个几何对象,该几何对象由原来的呈选中状态变为非选中状态。

参数:
geometryID - 要删除几何对象的 ID 号(即其属性数据中 SmID 字段的值)
返回:
删除成功返回 true;否则返回 false。

removeRange

public int removeRange(int index,
                       int count)
用于从选择集中删除指定的若干几何对象,这些几何对象由原来的选中状态变为非选中状态。

参数:
index - 要删除的第一个几何对象的序列号。
count - 要删除的几何对象的个数。
返回:
成功删除的几何对象的个数。

clear

public void clear()
将选择集清空,这样被选中的对象将全部恢复到未选中状态。


fromRecordset

public boolean fromRecordset(Recordset recordset)
用于把一个记录集转化为选择集(即记录集所对应的对象全部呈选中状态)。

调用 fromRecordset() 方法之后,最好刷新一下地图才能在地图上面看见有选中的对象。

参数:
recordset - 要转化为选择集的记录集。
返回:
一个布尔值,转换成功返回 true,否则返回 false。

toRecordset

public Recordset toRecordset()
用于把选择对象转化为记录集。只有将选择集转化为记录集后才能对其数据进行操作。

返回:
转化得到的记录集,该记录集包括所有的字段。

setStyleOptions

public void setStyleOptions(StyleOptions styleOptions,
                            boolean isEnable)
设置自定义选择集高亮风格是否起作用。如果设置为 false,则设置的选择风格将不起作用。

参数:
styleOptions - 待设置是否起作用的某项自定义选择集高亮风格。
isEnable - 自定义选择集高亮风格是否起作用。

getStyleOptions

public boolean getStyleOptions(StyleOptions styleOptions)
返回自定义选择集高亮风格是否起作用。

参数:
styleOptions - 待设置是否起作用的某项自定义选择集高亮风格。
返回:
某项自定义选择集高亮风格起作用返回true,否则返回false。

dispose

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


getVariantID

public java.lang.Object getVariantID(int index)
返回选择集中指定序号几何对象的系统 ID(属性表中 SmID 字段值) ,ID支持int32、int64、String 类型。

参数:
index - 几何对象在选择集中的序号。
返回:
返回选择集中指定序号几何对象的系统 ID(属性表中 SmID 字段值)。

add

public int add(long geometryID)
向选择集添加几何对象。

参数:
geometryID - 几何对象的系统 ID。
返回:
返回新添加几何对象在选择集中的序号。

add

public int add(java.lang.String geometryID)
向选择集添加几何对象。

参数:
geometryID - 几何对象的系统 ID,支持String类型ID。
返回:
返回新添加几何对象在选择集中的序号。

addRange

public int addRange(long[] geometryIDs)
向选择集添加一组几何对象。

参数:
geometryIDs - 几何对象的系统 ID 数组。
返回:
成功添加几何对象的个数。

addRange

public int addRange(java.lang.String[] geometryIDs)
向选择集添加一组几何对象。

参数:
geometryIDs - 几何对象的系统 ID 数组,支持String类型ID。
返回:
成功添加几何对象的个数。

remove

public boolean remove(long geometryID)
从选择集移除几何对象。

参数:
geometryID - 待移除几何对象的系统 ID。
返回:
移除成功返回true;否则,返回false。

remove

public boolean remove(java.lang.String geometryID)
从选择集移除几何对象。

参数:
geometryID - 待移除几何对象的系统 ID,支持String类型ID。
返回:
移除成功返回true;否则,返回false。