com.supermap.data

类 Recordset

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.Recordset
  • 所有已实现的接口:
    IDisposable
    直接已知子类:
    MemRecordset


    public class Recordset
    extends com.supermap.data.InternalHandleDisposable

    记录集类。

    通过此类,可以实现对矢量数据集中的数据进行操作。

    数据源有文件型和数据库型,数据库型数据中空间几何信息和属性信息一体化存储,一个矢量数据集对应一个 DBMS 表,其几何形状以及属性信息都一体化存储其中,表中的几何字段存储要素的空间几何信息。对于矢量数据集中的纯属性数据集,其中没有几何字段,记录集为 DBMS 表的一个子集;而在文件型数据中空间几何信息和属性信息是分别存储的,记录集的应用可能比较让人费解,实际上,操作时是屏蔽掉文件型和数据库型数据的区别,将数据都看成是一个空间信息和属性信息一体化存储的表,而记录集是从其中取出的用来操作的一个子集。记录集中的一条记录,即一行,对应着一个要素,包含该要素的空间几何信息和属性信息。记录集中的一列对应一个字段的信息。

    记录集可通过两种方式获得:在地图控件中选中若干个几何对象形成一个选择集,然后把选择集转换为记录集;或者从矢量数据集中获得一个记录集,有两种方法:用户可以通过 DatasetVector.getRecordset() 方法直接从矢量数据集中返回记录集,也可以通过查询语句返回记录集,所不同的是前者得到的记录集包含该类集合的全部空间几何信息和属性信息,而后者得到的是经过查询语句条件过滤的记录集。

    注意: 用户得到 Recordset 对象后,当执行完系列操作后,需要对该对象进行释放。

    示范代码:
    以下代码示范如何删除一条记录以及添加记录。假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象
     public void recordsetTest()
     {
            // 从中取出名为“World”(面数据集)的矢量数据集 dataset_world,和名为“Example”(面数据集)的矢量数据集 dataset
            DatasetVector dataset_world = (DatasetVector) datasource.getDatasets().get("World");
            DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("Example");
    
            // 得到“Example”对应的所有记录集以及“World”中 SmID=1 的记录
            Recordset recordset = dataset.getRecordset(false, CursorType.DYNAMIC);
            Recordset recordset_world = dataset_world.query("SmID=1",CursorType.STATIC);
    
            // 将记录位置移到第一位
            recordset.moveFirst();
    
            // 锁定当前记录位置
            recordset.edit();
    
            // 将当前记录删除
            recordset.delete();
    
            // 将“World”中 SmID=1 的记录添加到 recordset 中并提交
            Geometry geometry = recordset_world.getGeometry();
            recordset.update();
            recordset.addNew(geometry);
            recordset.update();
    
            // 关闭记录集,释放几何对象、记录集
            recordset.close();
            geometry.dispose();
            recordset.dispose();
            recordset_world.dispose();
        }
     
    • 嵌套类概要

      嵌套类 
      限定符和类型 类和说明
      class  Recordset.BatchEditor
      该类作为 Recordset 类的内部类,主要提供记录的批量更新的功能。
    • 方法概要

      所有方法 实例方法 具体方法 已过时的方法 
      限定符和类型 方法和说明
      boolean addNew(Geometry geometry)
      用于在记录集中添加一条记录。
      boolean addNew(Geometry geometry, Map<String,Object> map)
      添加几何对象及设置相关的字段值。
      void addSteppedListener(SteppedListener l)
      添加一个进度条事件(SteppedEvent)的监听器。
      boolean cancelUpdate()
      用于取消在调用 update() 方法前对当前记录或新记录所做的任何更改。
      void close()
      用于关闭记录集。
      boolean delete()
      用于删除数据集中的当前记录,成功则返回 true。
      boolean deleteAll()
      物理性删除指定记录集中的所有记录,即把记录从计算机的物理存储介质上删除,无法恢复。
      void disableRecordsetEditListener(String relationshipName)
      移除对应关系类名称的记录集编辑监听对象.
      void dispose()
      释放该对象所占用的资源。
      boolean edit()
      锁定并编辑记录集的当前记录,成功则返回 true。
      Map<Integer,Feature> getAllFeatures()
      返回记录集中的所有特征要素集。
      Recordset.BatchEditor getBatch()
      返回批量更新对象。
      boolean getBoolean(int index)
      用于返回数据集的属性数据表中当前记录为“布尔”类型字段的值。
      boolean getBoolean(String name)
      用于返回数据集的属性数据表中当前记录为“布尔”类型字段的值。
      Rectangle2D getBounds()
      返回记录集的属性数据表中所有记录对应的几何对象的外接矩形。
      short getByte(int index)
      用于返回数据集的属性数据表中当前记录为“字节”类型字段的值。
      short getByte(String name)
      用于返回数据集的属性数据表中当前记录为“字节”类型字段的值。
      int getCurrentIndex()
      获取当前记录索引。
      DatasetVector getDataset()
      返回记录集对应的数据集。
      Date getDateTime(int index)
      用于返回数据集的属性数据表中当前记录为“日期”类型字段的值。
      Date getDateTime(String name)
      用于获得数据集的属性数据表中当前记录为“日期”类型字段的值。
      double getDouble(int index)
      用于返回数据集的属性数据表中当前记录为“双精度”类型字段的值。
      double getDouble(String name)
      用于返回数据集的属性数据表中当前记录为“双精度”类型字段的值。
      Feature getFeature()
      返回记录集中的特征要素对象。
      int getFieldCount()
      返回记录集中字段(Field)的个数。
      FieldInfos getFieldInfos()
      返回记录集里的字段信息集合对象。
      Object getFieldValue(int index)
      根据字段序号指定字段,返回数据集的属性数据表中当前记录相应字段的值。
      Object getFieldValue(String name)
      根据字段名指定字段,返回数据集的属性数据表中当前记录该字段的值。
      Geometry getGeometry()
      用于返回数据集的属性数据表中当前记录对应的几何对象。
      int getID()
      用于返回数据集的属性表中当前记录对应的几何对象的 ID 号(即 SmID 字段的值)。
      int[] getIDsByGeoRelation(DatasetVector sourceDataset, SpatialRelationType spatialRelationType, boolean isBorderInside, boolean isShowProgress)
      从另一数据集中获取与当前记录集的对象满足一定空间关系的对象的 ID。
      int[] getIDsByGeoRelation(Geometry[] sourceGeometries, SpatialRelationType spatialRelationType, boolean isBorderInside, boolean isShowProgress)
      从给定的几何对象数组中获取与当前记录集的对象满足一定空间关系的对象的 ID。
      int[] getIDsByGeoRelation(Recordset sourceRecordset, SpatialRelationType spatialRelationType, boolean isBorderInside, boolean isShowProgress)
      从另一记录集中获取与当前记录集的对象满足一定空间关系的对象的 ID。
      short getInt16(int index)
      用于返回数据集的属性数据表中当前记录为“16位整型”类型字段的值。
      short getInt16(String name)
      用于返回数据集的属性数据表中当前记录为“16位整型”类型字段的值。
      int getInt32(int index)
      用于返回数据集的属性数据表中当前记录为“32位整型”类型字段的值。
      int getInt32(String name)
      用于返回数据集的属性数据表中当前记录“32位整型”类型字段的值。
      long getInt64(int index)
      用于返回数据集的属性数据表中当前记录为“64位整型”类型字段的值。
      long getInt64(String name)
      用于返回数据集的属性数据表中当前记录“64位整型”类型字段的值。
      String getJsonB(int index)
      用于返回数据集的属性数据表中当前记录为“JosnB”类型字段的值。
      String getJsonB(String name)
      用于返回数据集的属性数据表中当前记录为“JosnB”类型字段的值。
      byte[] getLongBinary(int index)
      用于返回数据集的属性数据表中当前记录为“二进制”类型字段的值。
      byte[] getLongBinary(String name)
      用于返回数据集的属性数据表中当前记录为“二进制”类型字段的值。
      Object getObject(int index)
      返回数据集的属性数据表中当前记录某一字段的值。
      Object getObject(String name)
      返回数据集的属性数据表中当前记录某一字段的值。
      QueryParameter getQueryParameter()
      得到当前记录集对应的查询参数,返回一个副本。
      int getRecordCount()
      返回记录集中的记录数。
      RepresentationElement getRepresentationElement(String representationField)
      返回当前记录指定字段中所记录的制图表达对象。
      float getSingle(int index)
      用于返回数据集的属性数据表中当前记录为“单精度”类型字段的值。
      float getSingle(String name)
      用于返回数据集的属性数据表中当前记录为“单精度”类型字段的值。
      String getString(int index)
      用于返回数据集的属性数据表中当前记录为“文本”类型字段的值。
      String getString(String name)
      用于返回数据集的属性数据表中当前记录为“文本”类型字段的值。
      Object[] getValues()
      返回数据集的属性数据表中当前记录所有字段的值。
      Object getVariantID()
      返回记录的 ID 标识符,此标识符用于唯一标识该记录,暂仅支持 PostGIS。
      boolean isBOF()
      判断当前记录的位置是否在记录集中第一条记录的前面(当然第一条记录的前面是没有数据的),如果是返回 true;否则返回 false。
      boolean isClosed()
      判断记录集是否已经关闭。
      boolean isEmpty()
      判断记录集中是否有记录。
      boolean isEOF()
      判断当前记录的位置是否在记录集中的最后一条记录的后面,如果是,返回 true;否则返回 false。
      boolean isReadOnly()
      返回记录集是否是只读的,如果是只读的,则返回 true,表示记录集中的信息将不可被修改。
      boolean move(int count)
      将当前记录位置移动 count 行,将该位置的记录设置为当前记录。
      boolean moveFirst()
      用于移动当前记录位置到第一条记录,使第一条记录成为当前记录。
      boolean moveGeometry(Geometry geoMoveVector)
      触发空间对象移动事件的操作的接口。
      boolean moveLast()
      用于移动当前记录位置到最后一条记录,使最后一条记录成为当前记录。
      boolean moveNext()
      移动当前记录位置到下一条记录,使该记录成为当前记录。
      boolean movePrev()
      移动当前记录位置到上一条记录,使该记录成为当前记录。
      boolean moveTo(int position)
      用于移动当前记录位置到指定的位置,将该指定位置的记录作为当前记录。
      boolean refresh()
      刷新当前记录集,用来反映数据集中的变化。
      void removeSteppedListener(SteppedListener l)
      移除一个进度条事件(SteppedEvent)的监听器。
      boolean rotateGeometry(Geometry geoOrigin, double angle)
      触发空间对象旋转事件的编辑接口。
      boolean seekID(int id)
      在记录中搜索指定 ID 号的记录,并定位该记录为当前记录。
      boolean seekID(Object value)
      在记录中搜索指定类型 ID 记录 ,并定位该记录为当前记录,暂仅支持 PostGIS。
      boolean setBoolean(int index, boolean value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setBoolean(String name, boolean value)
      用于设定记录集中某一字段的值,成功则返回 true。
      boolean setByte(int index, short value)
      用于设置记录集中当前记录某一字段的值,设置成功则返回 true。
      boolean setByte(String name, short value)
      用于设置记录集中当前记录某一字段的值,设置成功则返回 true。
      boolean setDateTime(int index, Date value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setDateTime(String name, Date value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setDouble(int index, double value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setDouble(String name, double value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setFieldValue(int index, Object value)
      根据要修改的字段的序号,设定记录集中相应字段的值。
      boolean setFieldValue(String name, Object value)
      根据要修改的字段的名称,设定记录集中相应字段的值。
      boolean setFieldValueNull(int index)
      根据字段序号,设定记录集中相应字段的值为 null,成功则返回 true。
      boolean setFieldValueNull(String name)
      根据字段名称,设定记录集中相应字段的值为 null,成功则返回 true。
      boolean setGeometry(Geometry geometry)
      用于修改记录集当前位置的几何对象,覆盖原来的几何对象,成功则返回 true。
      boolean setInt16(int index, short value)
      用于设置记录集中当前记录某一“16位整型”类型字段的值,设置成功则返回 true。
      boolean setInt16(String name, short value)
      用于设置记录集中当前记录某一“16位整型”类型字段的值,设置成功则返回 true。
      boolean setInt32(int index, int value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setInt32(String name, int value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setInt64(int index, long value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setInt64(String name, long value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setJsonB(int index, String value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setJsonB(String name, String value)
      用于设定记录集中某一字段的值,成功则返回 true。
      boolean setLongBinary(int index, byte[] value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setLongBinary(String name, byte[] value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setObject(int index, Object value)
      用于设定记录集中某一字段的值,成功则返回 true。
      boolean setObject(String name, Object value)
      用于设定记录集中某一字段的值,成功则返回 true。
      boolean setRepresentationElement(String representationField, Geometry geometry, RepresentationType type, Object customValue)
      设置当前记录所对应的几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。
      boolean setRepresentationElement(String representationField, GeoStyle style, Object customValue)
      设置当前记录所对应的几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。
      boolean setRepresentationElement(String representationField, RepresentationElement element)
      设置当前记录所对应的几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。
      boolean setRepresentationElement(String representationField, TextStyle style, Object customValue)
      设置当前记录所对应的文本几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。
      boolean setSingle(int index, float value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setSingle(String name, float value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setString(int index, String value)
      用于设置记录集中某一字段的值,成功则返回 true。
      boolean setString(String name, String value)
      用于设定记录集中某一字段的值,成功则返回 true。
      boolean setValues(Map<String,Object> map)
      已过时。 
      使用 setFieldValue()接口替代
      boolean setValues(Map<String,Object> map, Geometry geometry)
      已过时。 
      使用 setFieldValue()接口替代
      boolean setValues(Object[] values)
      已过时。 
      使用 setFieldValue()接口替代
      boolean setValues(Object[] values, Geometry geometry)
      已过时。 
      使用 setFieldValue()接口替代
      double statistic(int fieldIndex, StatisticMode mode)
      通过字段序号指定字段,对指定字段进行诸如最大值、最小值、平均值,总和,标准差和方差等方式的统计。
      double statistic(String fieldName, StatisticMode mode)
      通过字段名称指定字段,对指定字段进行诸如最大值、最小值、平均值,总和,标准差和方差等方式的统计。
      boolean toDatasetVectorWithSmID(String strName, DatasetType datasetType)
      根据SmID将记录集转换为数据集。
      boolean update()
      用于提交对记录集的修改,包括添加、编辑记录、修改字段值的操作。
      boolean updateFields(AttributeUpdateInfo info, boolean isShowProgress)
      根据属性更新参数指定的空间关系更新记录集中对象的属性。
      boolean updateFields(AttributeUpdateInfo info, SteppedListener... listeners)
      根据属性更新参数指定的空间关系更新记录集中对象的属性。
      boolean updateFields(DatasetVector sourceDataset, SpatialRelationType spatialRelationType, String[] sourceFields, String[] targetFields, AttributeStatisticsType attributeStatisticsType, boolean isBorderInside, String errorName, boolean isShowProgress)
      已过时。 
      已过时。使用updateFields(AttributeUpdateInfo info) Recordset.updateFields(AttributeUpdateInfo, boolean) 方法替代。
      boolean updateFields(DatasetVector sourceDataset, SpatialRelationType spatialRelationType, String[] sourceFields, String[] targetFields, AttributeStatisticsType attributeStatisticsType, boolean isBorderInside, String errorName, SteppedListener... listeners)
      已过时。 
      boolean updateFields(Recordset sourceRecordset, SpatialRelationType spatialRelationType, String[] sourceFields, String[] targetFields, AttributeStatisticsType attributeStatisticsType, boolean isBorderInside, String errorName, boolean isShowProgress)
      已过时。 
      已过时。使用updateFields(AttributeUpdateInfo info) Recordset.updateFields(AttributeUpdateInfo, boolean) )} 方法替代。
      boolean wasNull()
      返回上一次取值操作得到的值是否为空。
      • 从类继承的方法 com.supermap.data.InternalHandleDisposable

        makeSureNativeObjectLive
    • 方法详细资料

      • getBounds

        public Rectangle2D getBounds()
        返回记录集的属性数据表中所有记录对应的几何对象的外接矩形。
        返回:
        记录集的属性数据表中所有记录对应的几何对象的外接矩形。
      • getDataset

        public DatasetVector getDataset()
        返回记录集对应的数据集。
        返回:
        记录集对应的数据集。
      • getQueryParameter

        public QueryParameter getQueryParameter()
        得到当前记录集对应的查询参数,返回一个副本。具体查询参数信息参见 QueryParameter 类型。
        返回:
        查询的记录集。
        另请参阅:
        QueryParameter
      • getFieldInfos

        public FieldInfos getFieldInfos()
        返回记录集里的字段信息集合对象。字段信息集合类的详细信息参见 FieldInfos 类。
        返回:
        一个 Fieldinfos 的副本。
      • getFieldCount

        public int getFieldCount()
        返回记录集中字段(Field)的个数。
        返回:
        记录集中字段(Field)的个数。
        示范代码:
        请参见 QueryParameter 的示例。
      • isClosed

        public boolean isClosed()
        判断记录集是否已经关闭。 记录集已经关闭返回 true,否则返回 false。
        返回:
        记录集是否已经关闭。
        默认值:
        默认值为 false,即记录集尚未关闭。
      • isBOF

        public boolean isBOF()
        判断当前记录的位置是否在记录集中第一条记录的前面(当然第一条记录的前面是没有数据的),如果是返回 true;否则返回 false。
        返回:
        当前记录是否在第一条记录的前面。
        示范代码:
        请参见 Recordset 类的示例。
      • isEOF

        public boolean isEOF()
        判断当前记录的位置是否在记录集中的最后一条记录的后面,如果是,返回 true;否则返回 false。
        返回:
        当前记录是否在最后一条记录的后面。
      • isEmpty

        public boolean isEmpty()
        判断记录集中是否有记录。true 表示该记录集中无数据,此时,RecordCount 的值应为-1。
        返回:
        记录集中是否有记录。
      • isReadOnly

        public boolean isReadOnly()
        返回记录集是否是只读的,如果是只读的,则返回 true,表示记录集中的信息将不可被修改。
        返回:
        记录集是否只读。
      • getRecordCount

        public int getRecordCount()
        返回记录集中的记录数。
        返回:
        记录集中的记录数。
      • addNew

        public boolean addNew(Geometry geometry)
        用于在记录集中添加一条记录。
      • 在使用该方法添加记录之后,需要调用 update() 方法来提交修改,保存结果;
      • 对于只读打开的数据源,其数据集的记录集的此方法不可用;
      • 在新增记录的时候,不能对记录集进行锁定并编辑(edit),否则 Recordset.addNew() 方法会失败;
      • 当传入的参数为空时,只有记录集所在的数据集为属性数据集时该方法才可用,如果是其他类型的数据集,调用 Recordset.addNew() 方法会失败。
参数:
geometry - 要追加的记录对应的几何对象,可以是点、线、面、注记等几何对象。该参数可以为 null。
返回:
添加成功,返回值为 true,否则返回 false。
示范代码:
请参见 Recordset 类的示例。
  • addNew

    public boolean addNew(Geometry geometry,
                          Map<String,Object> map)
    添加几何对象及设置相关的字段值。

    在使用该方法之后,需要调用 update() 方法来提交修改,保存结果。

    参数:
    geometry - 需要添加的几何对象
    values - 需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。
    返回:
    一个布尔值,添加成功返回 true,否则返回 false。
    示范代码:
    请参见 Recordset.BatchEditor 类的示例。
  • edit

    public boolean edit()
    锁定并编辑记录集的当前记录,成功则返回 true。用该方法编辑后,一定要用 update() 方法更新记录集,而且在 update() 之前不能移动当前记录的位置,否则编辑失败,记录集也可能被损坏。
    返回:
    编辑成功返回 true,否则返回 false。
  • update

    public boolean update()
    用于提交对记录集的修改,包括添加、编辑记录、修改字段值的操作。对记录集做修改之后,都需要使用 update() 来提交修改。每对一条记录做完修改就需要调用一次 update() 来提交修改。
    返回:
    更新成功返回 true,否则返回 false。
    示范代码:
    请参见 Recordset 类的示例。
  • cancelUpdate

    public boolean cancelUpdate()
    用于取消在调用 update() 方法前对当前记录或新记录所做的任何更改。成功则返回 true。
    返回:
    成功则返回 true,否则返回 false。
  • close

    public void close()
    用于关闭记录集。使用记录集以后应及时关闭。
  • delete

    public boolean delete()
    用于删除数据集中的当前记录,成功则返回 true。

    当记录为只读时,该方法不可用。

    返回:
    删除成功则返回 true,否则返回 false。
    示范代码:
    请参见 Recordset 类的示例。
  • deleteAll

    public boolean deleteAll()
    物理性删除指定记录集中的所有记录,即把记录从计算机的物理存储介质上删除,无法恢复。

    当记录为只读时,该方法不可用。

    返回:
    删除成功则返回 true,否则返回 false。
  • getFieldValue

    public Object getFieldValue(int index)
    根据字段序号指定字段,返回数据集的属性数据表中当前记录相应字段的值。
    参数:
    index - 要取其值的字段的序号。
    返回:
    当前记录中某一字段的值。
    示范代码:
    请参见 QueryParameter 的示例。
  • getInt32

    public int getInt32(int index)
    用于返回数据集的属性数据表中当前记录为“32位整型”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 待返回其值的指定字段的索引。
    返回:
    数据集的属性数据表中当前记录“32位整型”类型字段的值。
  • getInt32

    public int getInt32(String name)
    用于返回数据集的属性数据表中当前记录“32位整型”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 待返回其值的指定字段的名称。
    返回:
    数据集的属性数据表中当前记录“32位整型”类型字段的值。
  • getInt16

    public short getInt16(int index)
    用于返回数据集的属性数据表中当前记录为“16位整型”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 待返回其值的指定字段的索引。
    返回:
    数据集的属性数据表中当前记录为“16位整型”类型字段的值。
  • getInt16

    public short getInt16(String name)
    用于返回数据集的属性数据表中当前记录为“16位整型”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 待返回其值的指定字段的名称。
    返回:
    数据集的属性数据表中当前记录“16位整型”类型字段的值。
  • getInt64

    public long getInt64(int index)
    用于返回数据集的属性数据表中当前记录为“64位整型”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 待返回其值的指定字段的索引。
    返回:
    数据集的属性数据表中当前记录“64位整型”类型字段的值。
  • getInt64

    public long getInt64(String name)
    用于返回数据集的属性数据表中当前记录“64位整型”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 待返回其值的指定字段的名称。
    返回:
    数据集的属性数据表中当前记录“64位整型”类型字段的值。
  • getBoolean

    public boolean getBoolean(int index)
    用于返回数据集的属性数据表中当前记录为“布尔”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录为“布尔”类型字段的值。
  • getBoolean

    public boolean getBoolean(String name)
    用于返回数据集的属性数据表中当前记录为“布尔”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录为“布尔”类型字段的值。
  • getString

    public String getString(int index)
    用于返回数据集的属性数据表中当前记录为“文本”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录为“文本”类型字段的值。
  • getString

    public String getString(String name)
    用于返回数据集的属性数据表中当前记录为“文本”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录为“文本”类型字段的值。
  • getJsonB

    public String getJsonB(int index)
    用于返回数据集的属性数据表中当前记录为“JosnB”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“JsonB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录为“JsonB”类型字段的值。
  • getJsonB

    public String getJsonB(String name)
    用于返回数据集的属性数据表中当前记录为“JosnB”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“JosnB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录为“JosnB”类型字段的值。
  • getDateTime

    public Date getDateTime(int index)
    用于返回数据集的属性数据表中当前记录为“日期”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“日期”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录为“日期”类型字段的值。
  • getDateTime

    public Date getDateTime(String name)
    用于获得数据集的属性数据表中当前记录为“日期”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“日期”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录为“日期”类型字段的值。
  • getDouble

    public double getDouble(int index)
    用于返回数据集的属性数据表中当前记录为“双精度”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录为“双精度”类型字段的值。
  • getDouble

    public double getDouble(String name)
    用于返回数据集的属性数据表中当前记录为“双精度”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录“双精度”类型字段的值。
  • getSingle

    public float getSingle(int index)
    用于返回数据集的属性数据表中当前记录为“单精度”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录“单精度”类型字段的值。
  • getSingle

    public float getSingle(String name)
    用于返回数据集的属性数据表中当前记录为“单精度”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录为“单精度”类型字段的值。
  • getByte

    public short getByte(int index)
    用于返回数据集的属性数据表中当前记录为“字节”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“字节”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 待返回其值的指定字段的索引。
    返回:
    数据集的属性数据表中当前记录为“字节”类型字段的值。
  • getByte

    public short getByte(String name)
    用于返回数据集的属性数据表中当前记录为“字节”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“字节”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 待返回其值的指定字段的名称。
    返回:
    数据集的属性数据表中当前记录为字节类型字段的值。
  • getLongBinary

    public byte[] getLongBinary(int index)
    用于返回数据集的属性数据表中当前记录为“二进制”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录为“二进制”类型字段的值。
  • getLongBinary

    public byte[] getLongBinary(String name)
    用于返回数据集的属性数据表中当前记录为“二进制”类型字段的值。

    返回已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录为“二进制”类型字段的值。
  • getFieldValue

    public Object getFieldValue(String name)
    根据字段名指定字段,返回数据集的属性数据表中当前记录该字段的值。
    参数:
    name - 要取其值的字段的名称。
    返回:
    当前记录中某一字段的值。
  • getGeometry

    public Geometry getGeometry()
    用于返回数据集的属性数据表中当前记录对应的几何对象。
    返回:
    若成功返回几何对象,否则返回 null。
    示范代码:
    请参见 Recordset 类的示例。
  • getID

    public int getID()
    用于返回数据集的属性表中当前记录对应的几何对象的 ID 号(即 SmID 字段的值)。
    返回:
    几何对象的 ID 号。
  • getVariantID

    public Object getVariantID()
    返回记录的 ID 标识符,此标识符用于唯一标识该记录,暂仅支持 PostGIS。
    返回:
    成功返回该记录的 ID 标识符,失败返回空值。
  • getCurrentIndex

    public int getCurrentIndex()
    获取当前记录索引。
    返回:
    索引值。
  • move

    public boolean move(int count)
    将当前记录位置移动 count 行,将该位置的记录设置为当前记录。成功返回 true。count 小于0表示向前移,大于0表示向后移动,等于0时不移动。如果移动的行数太多,超出了 Recordset 的范围,将会返回 false,当前记录不移动。
    参数:
    count - 移动的记录数。
    返回:
    移动成功返回 true,否则返回 false。
  • moveFirst

    public boolean moveFirst()
    用于移动当前记录位置到第一条记录,使第一条记录成为当前记录。成功则返回 true。
    返回:
    移动成功返回 true,否则返回 false。
    示范代码:
    请参见 Recordset 类的示例。
  • moveLast

    public boolean moveLast()
    用于移动当前记录位置到最后一条记录,使最后一条记录成为当前记录。成功则返回 true。
    返回:
    移动成功返回 true,否则返回 false。
  • moveNext

    public boolean moveNext()
    移动当前记录位置到下一条记录,使该记录成为当前记录。成功则返回 true。
    返回:
    移动成功返回 true,否则返回 false。
  • movePrev

    public boolean movePrev()
    移动当前记录位置到上一条记录,使该记录成为当前记录。成功则返回 true。
    返回:
    移动成功返回 true,否则返回 false。
  • moveTo

    public boolean moveTo(int position)
    用于移动当前记录位置到指定的位置,将该指定位置的记录作为当前记录。成功则返回 true。
    参数:
    position - 移动到的位置,即第几条记录。位置从零开始,moveTo(0)moveFirst()等效。
    返回:
    移动成功返回 true,否则返回 false。
  • refresh

    public boolean refresh()
    刷新当前记录集,用来反映数据集中的变化。如果成功返回 true,否则返回 false。此方法与 update() 的区别:update() 方法是提交修改结果,而 refresh() 方法是动态刷新记录集,在多用户并发操作时,为了动态显示数据集中的变化,经常用到 refresh() 方法。
    返回:
    成功返回 true,否则返回 false。
  • seekID

    public boolean seekID(int id)
    在记录中搜索指定 ID 号的记录,并定位该记录为当前记录。
    参数:
    id - 要搜索的 ID 号。
    返回:
    成功则返回 true,否则返回 false。
  • seekID

    public boolean seekID(Object value)
    在记录中搜索指定类型 ID 记录 ,并定位该记录为当前记录,暂仅支持 PostGIS。
    参数:
    id - 为指定类型的 ID 号,支持 INT32、INT64。
    返回:
    成功则返回 true,否则返回 false。
  • setFieldValue

    public boolean setFieldValue(int index,
                                 Object value)
    根据要修改的字段的序号,设定记录集中相应字段的值。成功则返回 true。在对某一字段赋值的时候,需先调用 edit() 锁定要修改的记录,修改之后需调用 update() 进行提交。
    参数:
    index - 要修改的字段的序号。
    value - 新字段值。
    返回:
    设定成功返回 true,否则返回 false。
  • setFieldValue

    public boolean setFieldValue(String name,
                                 Object value)
    根据要修改的字段的名称,设定记录集中相应字段的值。成功则返回 true。在对某一字段赋值的时候,需先调用 edit() 锁定要修改的记录,修改之后需调用 update() 进行提交。
    参数:
    name - 要修改的字段的名称。
    value - 新字段值。
    返回:
    设定成功返回 true,否则返回 false。
  • setByte

    public boolean setByte(int index,
                           short value)
    用于设置记录集中当前记录某一字段的值,设置成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“字节”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要设置其值的指定字段的索引。
    value - 要设置的字节值。
    返回:
    一个布尔值,设定成功返回true,否则返回 false。
  • setByte

    public boolean setByte(String name,
                           short value)
    用于设置记录集中当前记录某一字段的值,设置成功则返回 true。

    设置已知字段类型的值,如果字段类型不是字节类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要设置其值的指定字段的名称。
    value - 要设置的 byte 值。
    返回:
    一个布尔值,设定成功返回 true,否则返回 false。
  • setInt32

    public boolean setInt32(String name,
                            int value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 待返回其值的指定字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回true,否则返回False。
  • setInt32

    public boolean setInt32(int index,
                            int value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 待返回其值的指定字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setInt16

    public boolean setInt16(String name,
                            short value)
    用于设置记录集中当前记录某一“16位整型”类型字段的值,设置成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要设置其值的指定字段的名称。
    value - 要设置的 short 值。
    返回:
    设定成功返回 true,否则返回 false。
  • setInt16

    public boolean setInt16(int index,
                            short value)
    用于设置记录集中当前记录某一“16位整型”类型字段的值,设置成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要设置其值的指定字段的索引。
    value - 要设置的 short 值。
    返回:
    设定成功返回 true,否则返回 false。
  • setInt64

    public boolean setInt64(String name,
                            long value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 待返回其值的指定字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回true,否则返回False。
  • setInt64

    public boolean setInt64(int index,
                            long value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 待返回其值的指定字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setDouble

    public boolean setDouble(String name,
                             double value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setDouble

    public boolean setDouble(int index,
                             double value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setSingle

    public boolean setSingle(String name,
                             float value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setSingle

    public boolean setSingle(int index,
                             float value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setBoolean

    public boolean setBoolean(String name,
                              boolean value)
    用于设定记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setBoolean

    public boolean setBoolean(int index,
                              boolean value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setString

    public boolean setString(String name,
                             String value)
    用于设定记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setString

    public boolean setString(int index,
                             String value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setJsonB

    public boolean setJsonB(String name,
                            String value)
    用于设定记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“JsonB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setJsonB

    public boolean setJsonB(int index,
                            String value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“JsonB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setLongBinary

    public boolean setLongBinary(String name,
                                 byte[] value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    该方法只对二进制类型的字段有效,若字段为其他类型,则返回 false。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setLongBinary

    public boolean setLongBinary(int index,
                                 byte[] value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setDateTime

    public boolean setDateTime(String name,
                               Date value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是 DateTime,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    name - 要取其值的字段的名称。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setDateTime

    public boolean setDateTime(int index,
                               Date value)
    用于设置记录集中某一字段的值,成功则返回 true。

    设置已知字段类型的值,如果字段类型不是“日期”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。

    参数:
    index - 要取其值的字段的索引。
    value - 要设置的值。
    返回:
    设定成功返回 true,否则返回 false。
  • setFieldValueNull

    public boolean setFieldValueNull(int index)
    根据字段序号,设定记录集中相应字段的值为 null,成功则返回 true。
    参数:
    index - 要设定的字段的序号。
    返回:
    设定成功返回 true,否则返回 false。
  • setFieldValueNull

    public boolean setFieldValueNull(String name)
    根据字段名称,设定记录集中相应字段的值为 null,成功则返回 true。
    参数:
    name - 要设定的字段的名称。
    返回:
    设定成功返回 true,否则返回 false。
  • setGeometry

    public boolean setGeometry(Geometry geometry)
    用于修改记录集当前位置的几何对象,覆盖原来的几何对象,成功则返回 true。修改记录的几何对象时,系统自动修改与对象有关的系统字段的值,如多边形对象的面积,线段对象的长度等。

    建议在使用该接口进行几何对象的修改编辑时,调用 edit、setGeometry 和 update 方法之间不要插入其它操作,否则可能导致几何对象修改失败,可参见示例。

    参数:
    geometry - 用来覆盖原几何对象的新几何对象。
    返回:
    设置成功返回 true,否则返回 false。
    抛出:
    NullPointerException - 如果传入的参数为null,则抛出 NullPointerException。
    IllegalArgumentException - 如果属性表数据集调用此接口,且传入参数不为 null 时,则抛出 IllegalArgumentException 。
    示范代码:
    以下代码示范如何修改记录集当前位置的几何对象。假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象
     public void recordsetTest()
     {
            // 从中取出名为“World”的矢量数据集  dataset_world 和名为“Ocean”的矢量数据集 dataset。 
            DatasetVector dataset_world = (DatasetVector) datasource.getDatasets().get("World");
            DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("Ocean");
    
            // 得到“World”中 SmID<6 的记录以及“Ocean”中 6<=SMID<11 的记录
            Recordset recordset_world = dataset_world.query("SmID<6", CursorType.STATIC);
            Recordset recordset = dataset.query("SMID >=6 and SMID<11", CursorType.STATIC);
            
            // 将记录位置移到第一位
            recordset.moveFirst();
            
            // 将“Ocean”中 6<=SMID<11 的记录替换为“World”中 SmID<6 的记录,并提交
            // 在编辑修改几何对象的过程中建议不要插入其它操作,否则可能导致几何对象修改失败。
            Geometry geometry = recordset_world.getGeometry();
            
            recordset.edit();
            recordset.setGeometry(geometry);
            recordset.update();
    
            // 关闭记录集,释放几何对象、记录集
            geometry.dispose();
            recordset.dispose();
            recordset_world.dispose();
            recordset.close();
            recordset_world.close();
            }
     
  • moveGeometry

    public boolean moveGeometry(Geometry geoMoveVector)
    触发空间对象移动事件的操作的接口。
    参数:
    geoMoveVector - 修改后的空间对象。
    返回:
    是否修改成功。
    从以下版本开始:
    11.2.0
  • rotateGeometry

    public boolean rotateGeometry(Geometry geoOrigin,
                                  double angle)
    触发空间对象旋转事件的编辑接口。
    参数:
    geoOrigin - 旋转的原点。
    angle - 旋转角度。
    返回:
    修改是否成功。
    从以下版本开始:
    11.2.0
  • statistic

    public double statistic(int fieldIndex,
                            StatisticMode mode)
    通过字段序号指定字段,对指定字段进行诸如最大值、最小值、平均值,总和,标准差和方差等方式的统计。
    参数:
    fieldIndex - 被统计字段的序号。
    mode - 统计方式。
    返回:
    统计结果。
  • statistic

    public double statistic(String fieldName,
                            StatisticMode mode)
    通过字段名称指定字段,对指定字段进行诸如最大值、最小值、平均值,总和,标准差和方差等方式的统计。
    参数:
    fieldName - 被统计字段的名称。
    mode - 统计方式。
    返回:
    统计结果。
    示范代码:
    请参见 Selection 类的示例。
  • dispose

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

    public Recordset.BatchEditor getBatch()
    返回批量更新对象。

    EngineType 中的可写文件型引擎和数据库型引擎类型数据源均支持批量更新操作。

    返回:
    批量更新对象。
  • getRepresentationElement

    public RepresentationElement getRepresentationElement(String representationField)
    返回当前记录指定字段中所记录的制图表达对象。

    什么是制图表达?

    制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

    制图表达对象(RepresentationElement 类对象)定义了制图表达显示形式,制图表达对象中包含了几何对象以及几何对象的风格信息,另外,还有制图表达类型来控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见 RepresentationType 类。

    参数:
    representationField - 用于存储制图表达信息的字段,该字段必须是二进制类型的。
    返回:
    制图表达对象。
  • setRepresentationElement

    public boolean setRepresentationElement(String representationField,
                                            RepresentationElement element)
    设置当前记录所对应的几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。 该字段必须是已经创建好的,并且该字段的类型必须是二进制类型。

    什么是制图表达?

    制图表达对象(RepresentationElement 类对象)定义了制图表达显示形式,制图表达对象中包含了几何对象以及几何对象的风格信息,另外,还有制图表达类型来控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见 RepresentationType 类。

    利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:

    • 构建制图表达对象,并设置好制图表达对象的信息;
    • 在矢量数据集中,建立用于存储制图表达信息的字段,该字段必须是二进制类型的;
    • 返回要赋予制图表达信息的矢量数据集中几何对象的记录集;
    • 将当前记录位置移动到要添加制图表达信息的几何对象所在的记录,调用Recordset.setRepresentationElement(String representationField, TextStyle style, Object customValue) 方法,将该文本几何对象所关联制图表达信息写入指定的制图表达字段中;依次进行,直到将需要设置制图表达信息的几何对象设置完毕。

    制图表达信息的显示:

    当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的 setRepresentationField() 方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。

    参数:
    representationField - 用于存储制图表达信息的字段,该字段必须是二进制类型的。
    element - 指定的制图表达对象。
    返回:
    一个布尔值,设置成功返回 true;否则返回 false。
  • setRepresentationElement

    public boolean setRepresentationElement(String representationField,
                                            GeoStyle style,
                                            Object customValue)
    设置当前记录所对应的几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。 该字段必须是已经创建好的,并且该字段的类型必须是二进制类型。

    什么是制图表达?

    制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

    利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:

    • 在矢量数据集中,建立用于存储制图表达信息的字段,该字段必须是二进制类型的;
    • 返回要赋予制图表达信息的矢量数据集中几何对象的记录集;
    • 将当前记录位置移动到要添加制图表达信息的几何对象所在的记录,调用 Recordset.setRepresentationElement(String representationField, GeoStyle style, Object customValue)方法,将该几何对象所关联制图表达信息写入指定的制图表达字段中;
    • 依次进行,直到将需要设置制图表达信息的几何对象设置完毕。

    制图表达信息的显示:

    当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的 setRepresentationField() 方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。

    利用该方法设置的几何对象的制图表达,在显示时将使用原来的几何对象,但几何对象的风格采用该方法设置的风格显示。

    参数:
    representationField - 用于存储制图表达信息的字段,该字段必须是二进制类型的。
    style - 制图表达时使用的风格,即矢量数据集中使用制图表达的原几何对象将采用该参数设置的几何对象的风格进行显示。
    customValue - 自定义的属性。
    返回:
    一个布尔值,设置成功返回 true;否则返回 false。
  • setRepresentationElement

    public boolean setRepresentationElement(String representationField,
                                            TextStyle style,
                                            Object customValue)
    设置当前记录所对应的文本几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。 该字段必须是已经创建好的,并且该字段的类型必须是二进制类型。该方法使用于为文本数据集设置制图表达信息。

    什么是制图表达?

    制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

    利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:

    制图表达信息的显示:

    当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的 setRepresentationField() 方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。

    利用该方法设置的文本几何对象的制图表达,在显示时将使用原来的文本几何对象,但文本几何对象的风格采用该方法设置的风格显示。

    参数:
    representationField - 用于存储制图表达信息的字段,该字段必须是二进制类型的。
    style - 制图表达时使用的文本样式,即文本数据集中使用制图表达的原文本几何对象将采用该参数设置的的风格进行显示。
    customValue - 自定义的属性。
    返回:
    一个布尔值,设置成功返回 true;否则返回 false。
  • setRepresentationElement

    public boolean setRepresentationElement(String representationField,
                                            Geometry geometry,
                                            RepresentationType type,
                                            Object customValue)
    设置当前记录所对应的几何对象的制图表达信息,该对象的制图表达信息将存储在该方法指定的字段中。 该字段必须是已经创建好的,并且该字段的类型必须是二进制类型。

    什么是制图表达?

    制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。

    利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:

    • 在矢量数据集中,建立用于存储制图表达信息的字段,该字段必须是二进制类型的;
    • 返回要赋予制图表达信息的矢量数据集中几何对象的记录集;
    • 利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:1)构建制图表达对象,并设置好制图表达对象的信息;2)在矢量数据集中,建立用于存储制图表达信息的字段,该字段必须是二进制类型的;3)返回要赋予制图表达信息的矢量数据集中几何对象的记录集;4)将当前记录位置移动到要添加制图表达信息的几何对象所在的记录调用Recordset.SetRepresentationElement(String representationField,RepresentationElement element) 方法,将该几何对象所关联的制图表达对象所记录的信息写入指定的制图表达字段中;
    • 依次进行,直到将需要设置制图表达信息的几何对象设置完毕。

    制图表达信息的显示:

    当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer 对象的setRepresentationField() 方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。

    参数:
    representationField - 用于存储制图表达信息的字段,该字段必须是二进制类型的。
    geometry - 制图表达时使用的几何对象,该几何对象将取代矢量数据集中与之关联的几何对象进行显示。该参数包含了用于制图表达对象的几何信息和显示风格信息。
    type - 制图表达类型。制图表达类型可以控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见 RepresentationType 类。
    customValue - 自定义的属性。
    返回:
    一个布尔值,设置成功返回 true;否则返回 false。
  • wasNull

    public boolean wasNull()
    返回上一次取值操作得到的值是否为空。
    返回:
    上一次取值操作得到的值是否为空。
  • setValues

    @Deprecated
    public boolean setValues(Map<String,Object> map)
    已过时。 使用 setFieldValue()接口替代
    用于设定记录集中某一字段的值,成功则返回 true。

    只支持 UDB 引擎,不推荐使用。

    参数:
    values - 需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。
    返回:
    设定成功返回 true,否则返回 false。
    示范代码:
    以下代码示范如何进行批量修改。通过以下代码可以实现将World数据集中的两个属性字段"pop"和"name"的属性值分别批量修改为"1000000"和"supermap"
     public void setValuesTest(){
                // 前提条件:已打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象,数据源中包含矢量数据集"World"。
                // 获取矢量数据集
                DatasetVector dataset_world = (DatasetVector) datasource.getDatasets().get("World");
    
                //复制一份数据集,名称为"example"
                String name = "example";
                DatasetVector dataset = (DatasetVector) datasource.copyDataset(dataset_world, name, EncodeType.NONE);
    
                // 获取记录集,设置批量更新字段值
                Recordset recordset = dataset.getRecordset(false, CursorType.DYNAMIC);
                Map value = new HashMap();
                value.put("pop", "1000000");
                value.put("name", "supermap");
    
                // 返回记录集对应的批量更新对象
                Recordset.BatchEditor editor = recordset.getBatch();
    
                // 批量更新操作开始
                editor.begin();
                while (!recordset.isEOF()) {
                recordset.setValues(value);
                recordset.moveNext();
                }
    
                // 批量操作统一提交
                editor.update();
    
                // 释放记录
                recordset.dispose();
            }
     
  • setValues

    @Deprecated
    public boolean setValues(Map<String,Object> map,
                                          Geometry geometry)
    已过时。 使用 setFieldValue()接口替代
    用于设定需要修改的几何对象的某一字段的值,成功则返回 true。

    只支持 UDB 引擎,不推荐使用。

    参数:
    map - 需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。
    geometry - 用于修改的几何对象。
    返回:
    设定成功返回 true,否则返回 false。
    示范代码:
    请参见 setValues(Map) 的批量修改的示例。
  • setValues

    @Deprecated
    public boolean setValues(Object[] values)
    已过时。 使用 setFieldValue()接口替代
    用于设定记录集中所有字段的值,成功则返回 true。

    只支持 UDB 引擎,不推荐使用。。

    参数:
    values - 字段数组,需要和字段顺序保持相同的索引值。
    返回:
    设定成功返回 true,否则返回 false。
    示范代码:
    请参见 setValues(Map) 的批量修改的示例。
  • setValues

    @Deprecated
    public boolean setValues(Object[] values,
                                          Geometry geometry)
    已过时。 使用 setFieldValue()接口替代
    用于设定需要修改的几何对象的记录集中所有字段的值,成功则返回 true。

    只支持 UDB 引擎,不推荐使用。。

    参数:
    values - 字段数组,需要和字段顺序保持相同的索引值。
    geometry - 用于修改的几何对象
    返回:
    设定成功返回 true,否则返回 false。
    示范代码:
    请参见 setValues(Map) 的批量修改的示例。
  • getValues

    public Object[] getValues()
    返回数据集的属性数据表中当前记录所有字段的值。
    返回:
    数据集的属性数据表中当前记录所有字段的值。
  • setObject

    public boolean setObject(int index,
                             Object value)
    用于设定记录集中某一字段的值,成功则返回 true。
    参数:
    index - 指定的字段的索引值。
    value - 指定的字段值。。
    返回:
    设定成功返回 true,否则返回 false。
  • setObject

    public boolean setObject(String name,
                             Object value)
    用于设定记录集中某一字段的值,成功则返回 true。
    参数:
    name - 指定的字段的名称。
    value - 指定的字段值。
    返回:
    设定成功返回 true,否则返回 false。
  • getObject

    public Object getObject(int index)
    返回数据集的属性数据表中当前记录某一字段的值。
    参数:
    index - 待返回其值的字段的索引。
    返回:
    数据集的属性数据表中当前记录某一字段的值。
  • getObject

    public Object getObject(String name)
    返回数据集的属性数据表中当前记录某一字段的值。
    参数:
    name - 要取其值的字段的名称。
    返回:
    数据集的属性数据表中当前记录某一字段的值。
  • getFeature

    public Feature getFeature()
    返回记录集中的特征要素对象。
    返回:
    特征要素对象。
    示范代码:
    以下代码示范如何获取特征要素及其对应的几何对象。
     public void getFeatureTest()
     { 
        // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象。
       // 从中取出名为“World”(面数据集)的矢量数据集 dataset
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("World");
        
        // 得到“World”中 SmID=1 的记录
        Recordset recordset = dataset.query("SmID=1",CursorType.STATIC);
        
        // 获取特征要素 feature
        Feature feature = recordset.getFeature();      
        
        // 获取特征要素对应的几何对象
        Geometry geometry = feature.getGeometry();
                     
        // 关闭记录集,释放几何对象、特征要素和记录集。
        recordset.close();
        geometry.dispose();
        feature.dispose();
        recordset.dispose();
     }      
     
  • getAllFeatures

    public Map<Integer,Feature> getAllFeatures()
    返回记录集中的所有特征要素集。

    Map 的第一个参数代表几何对象的 ID 号(即 SmID 字段的值),第二个参数是特征要素(Feature)的引用。

    返回:
    所有的特征要素集。
    示范代码:
    以下代码示范如何获取所有特征要素集。
     public void getAllFeaturesTest()
     { 
        // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象。
       // 从中取出名为“World”(面数据集)的矢量数据集 dataset
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("World");
        
        // 得到“World”中 SmID $lt;= 20 的记录
        Recordset recordset = dataset.query("SmID $lt;= 20", CursorType.STATIC);
        
        // 获取所有特征要素集
        Map allFeatures= recordset.getAllFeatures();
        
        // 关闭并释放记录集
        recordset.close();
        recordset.dispose();
     }      
     
  • updateFields

    @Deprecated
    public boolean updateFields(DatasetVector sourceDataset,
                                             SpatialRelationType spatialRelationType,
                                             String[] sourceFields,
                                             String[] targetFields,
                                             AttributeStatisticsType attributeStatisticsType,
                                             boolean isBorderInside,
                                             String errorName,
                                             SteppedListener... listeners)
    已过时。 
    根据空间关系更新记录集中对象的属性。
    参数:
    sourceDataset - 提供属性的源数据集。
    spatialRelationType - 空间关系类型。
    sourceFields - 提供属性的源数据集中用于更新的字段集合。
    targetFields - 被更新的目标字段集合。
    attributeStatisticsType - 属性字段的取值方式。
    isBorderInside - 点在面边界上时,界定其是否被面包含;或线只有端点与面相交时,界定其是否与面相交。
    errorName - 记录满足空间关系的 recordsetSrc 中对象个数的字段。
    listeners - 进度条监听对象。
    返回:
    更新成功返回true,否则返回false。
  • updateFields

    @Deprecated
    public boolean updateFields(DatasetVector sourceDataset,
                                             SpatialRelationType spatialRelationType,
                                             String[] sourceFields,
                                             String[] targetFields,
                                             AttributeStatisticsType attributeStatisticsType,
                                             boolean isBorderInside,
                                             String errorName,
                                             boolean isShowProgress)
    已过时。 已过时。使用updateFields(AttributeUpdateInfo info) Recordset.updateFields(AttributeUpdateInfo, boolean) 方法替代。
    根据空间关系更新记录集中对象的属性。
    1. 用于更新的字段集合与被更新字段集合需要对应。
    2. 取值方式对字段类型的限制。
    3. 边界处理方式(对应方法中 isBorderInside 参数)的介绍。
    参数:
    sourceDataset - 提供属性的源数据集。
    spatialRelationType - 空间关系类型。
    sourceFields - 提供属性的源数据集中用于更新的字段集合。
    targetFields - 被更新的目标字段集合。
    attributeStatisticsType - 属性字段的取值方式。
    isBorderInside - 点在面边界上时,界定其是否被面包含;或线只有端点与面相交时,界定其是否与面相交。
    errorName - 记录满足空间关系的 recordsetSrc 中对象个数的字段。
    isShowProgress - 是否显示进度条。
    返回:
    更新成功返回true,否则返回false。
  • updateFields

    @Deprecated
    public boolean updateFields(Recordset sourceRecordset,
                                             SpatialRelationType spatialRelationType,
                                             String[] sourceFields,
                                             String[] targetFields,
                                             AttributeStatisticsType attributeStatisticsType,
                                             boolean isBorderInside,
                                             String errorName,
                                             boolean isShowProgress)
    已过时。 已过时。使用updateFields(AttributeUpdateInfo info) Recordset.updateFields(AttributeUpdateInfo, boolean) )} 方法替代。
    根据空间关系更新记录集中对象的属性。
    1. 用于更新的字段集合与被更新字段集合需要对应。
    2. 取值方式对字段类型的限制。
    3. 边界处理方式(对应方法中 isBorderInside 参数)的介绍。
    参数:
    sourceRecordset - 指定的提供属性的记录集。
    spatialRelationType - 指定的空间关系。
    sourceFields - 指定的提供属性的记录集中用于更新的字段集合。
    targetFields - 指定的被更新的字段集合。
    attributeStatisticsType - 指定的属性字段的取值方式。
    isBorderInside - 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。
    errorName - 指定的记录满足空间关系的提供属性的记录集中对象个数的字段。该字段必须为整型。
    isShowProgress - 指定是否显示进度条。
    返回:
    一个布尔值,表示是否更新属性成功,如果成功返回 true,否则返回 false。
  • updateFields

    public boolean updateFields(AttributeUpdateInfo info,
                                SteppedListener... listeners)
    根据属性更新参数指定的空间关系更新记录集中对象的属性。
    参数:
    info - 属性更新参数
    listeners - 接收进度条的事件
    返回:
    一个布尔值,表示是否更新属性成功,如果成功返回 true,否则返回 false。
  • updateFields

    public boolean updateFields(AttributeUpdateInfo info,
                                boolean isShowProgress)
    根据属性更新参数指定的空间关系更新记录集中对象的属性。
    参数:
    info - 属性更新参数
    isShowProgress - 是否显示进度条
    返回:
    一个布尔值,表示是否更新属性成功,如果成功返回 true,否则返回 false。
  • getIDsByGeoRelation

    public int[] getIDsByGeoRelation(DatasetVector sourceDataset,
                                     SpatialRelationType spatialRelationType,
                                     boolean isBorderInside,
                                     boolean isShowProgress)
    从另一数据集中获取与当前记录集的对象满足一定空间关系的对象的 ID。

    该方法返回的数组其结构可归纳为:[当前记录集中第一个对象的 SMID,相关数据集中与之满足空间关系的对象个数,相关数据集中与之满足空间关系的第一个对象的 SMID,第二个,...,当前记录集中第二个对象的 SMID,...,依此类推]。

    更多介绍,请参阅 DatasetVector.getIDsByGeoRelation 方法。

    参数:
    sourceDataset - 指定的与当前记录集相关的数据集。
    spatialRelationType - 指定的空间关系。
    isBorderInside - 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。
    isShowProgress - 指定是否显示进度条。
    返回:
    一个整型数组,数组元素的含义见方法的介绍。
  • getIDsByGeoRelation

    public int[] getIDsByGeoRelation(Recordset sourceRecordset,
                                     SpatialRelationType spatialRelationType,
                                     boolean isBorderInside,
                                     boolean isShowProgress)
    从另一记录集中获取与当前记录集的对象满足一定空间关系的对象的 ID。

    该方法返回的数组其结构可归纳为:[当前记录集中第一个对象的 SMID,相关记录集中与之满足空间关系的对象个数,相关记录集中与之满足空间关系的第一个对象的 SMID,第二个,...,当前记录集中第二个对象的 SMID,...,依此类推]。

    更多介绍,请参阅 DatasetVector.getIDsByGeoRelation 方法。

    参数:
    sourceRecordset - 指定的与当前记录集相关的记录集。
    spatialRelationType - 指定的空间关系。
    isBorderInside - 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。
    isShowProgress - 指定是否显示进度条。
    返回:
    一个整型数组,数组元素的含义见方法的介绍。
  • getIDsByGeoRelation

    public int[] getIDsByGeoRelation(Geometry[] sourceGeometries,
                                     SpatialRelationType spatialRelationType,
                                     boolean isBorderInside,
                                     boolean isShowProgress)
    从给定的几何对象数组中获取与当前记录集的对象满足一定空间关系的对象的 ID。

    该方法返回的数组其结构可归纳为:[当前记录集中第一个对象的 SMID,相关几何对象数组中与之满足空间关系的对象个数,相关几何对象数组中与之满足空间关系的第一个对象的 ID,第二个,...,当前记录集中第二个对象的 SMID,...,依此类推]。

    需要注意,相关几何对象数组中的对象必须具有不重复的 ID,该 ID 可通过 GeometrygetID 方法返回,以及通过 setID 方法设置。如果相关的几何对象数组中的对象来自于记录集,并且没有手动修改对象的 ID,那么返回的是对象的 SMID。如果对象没有明确的来源,或者 ID 有重复,必须为它们重新设置不同的 ID。

    更多介绍,请参阅 DatasetVector.getIDsByGeoRelation 方法。

    参数:
    sourceGeometries - 指定的与当前记录集相关的几何对象数组。
    spatialRelationType - 指定的空间关系。
    isBorderInside - 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。
    isShowProgress - 指定是否显示进度条。
    返回:
    一个整型数组,数组元素的含义见方法的介绍。
    从以下版本开始:
    SuperMap iObjects Java 7.0.0
  • addSteppedListener

    public void addSteppedListener(SteppedListener l)
    添加一个进度条事件(SteppedEvent)的监听器。
    参数:
    l - 一个用于接收进度条事件的监听器。
  • removeSteppedListener

    public void removeSteppedListener(SteppedListener l)
    移除一个进度条事件(SteppedEvent)的监听器。
    参数:
    l - 一个用于接收进度条事件的监听器。
  • toDatasetVectorWithSmID

    public boolean toDatasetVectorWithSmID(String strName,
                                           DatasetType datasetType)
    根据SmID将记录集转换为数据集。
    参数:
    strName - 数据集名称。
    datasetType - 数据集类型。
    返回:
    数据集对象。
  • disableRecordsetEditListener

    public void disableRecordsetEditListener(String relationshipName)
    移除对应关系类名称的记录集编辑监听对象.
    参数:
    relationshipName - 关系类名称.

Copyright © 2021–2024 SuperMap. All rights reserved.