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(DatasetVector sourceDataset,
SpatialRelationType spatialRelationType,
String[] sourceFields,
String[] targetFields,
AttributeStatisticsType attributeStatisticsType,
boolean isBorderInside,
String errorName,
boolean isShowProgress)
已过时。
|
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)
根据空间关系更新记录集中对象的属性。
|
boolean |
wasNull()
返回上一次取值操作得到的值是否为空。
|
public Rectangle2D getBounds()
public DatasetVector getDataset()
public QueryParameter getQueryParameter()
QueryParameter
类型。QueryParameter
public FieldInfos getFieldInfos()
FieldInfos
类。public int getFieldCount()
QueryParameter
的示例。public boolean isClosed()
public boolean isBOF()
Recordset
类的示例。public boolean isEOF()
public boolean isEmpty()
public boolean isReadOnly()
public int getRecordCount()
public boolean addNew(Geometry geometry)
update()
方法来提交修改,保存结果;Recordset.addNew()
方法会失败;Recordset.addNew()
方法会失败。geometry
- 要追加的记录对应的几何对象,可以是点、线、面、注记等几何对象。该参数可以为 null。Recordset
类的示例。public boolean addNew(Geometry geometry, Map<String,Object> map)
在使用该方法之后,需要调用 update()
方法来提交修改,保存结果。
geometry
- 需要添加的几何对象values
- 需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。Recordset.BatchEditor
类的示例。public boolean edit()
public boolean update()
Recordset
类的示例。public boolean cancelUpdate()
update()
方法前对当前记录或新记录所做的任何更改。成功则返回 true。public void close()
public boolean delete()
当记录为只读时,该方法不可用。
Recordset
类的示例。public boolean deleteAll()
当记录为只读时,该方法不可用。
public Object getFieldValue(int index)
index
- 要取其值的字段的序号。QueryParameter
的示例。public int getInt32(int index)
返回已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 待返回其值的指定字段的索引。public int getInt32(String name)
返回已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 待返回其值的指定字段的名称。public short getInt16(int index)
返回已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 待返回其值的指定字段的索引。public short getInt16(String name)
返回已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 待返回其值的指定字段的名称。public long getInt64(int index)
返回已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 待返回其值的指定字段的索引。public long getInt64(String name)
返回已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 待返回其值的指定字段的名称。public boolean getBoolean(int index)
返回已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public boolean getBoolean(String name)
返回已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public String getString(int index)
返回已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public String getString(String name)
返回已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public String getJsonB(int index)
返回已知字段类型的值,如果字段类型不是“JsonB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public String getJsonB(String name)
返回已知字段类型的值,如果字段类型不是“JosnB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public Date getDateTime(int index)
返回已知字段类型的值,如果字段类型不是“日期”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public Date getDateTime(String name)
返回已知字段类型的值,如果字段类型不是“日期”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public double getDouble(int index)
返回已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public double getDouble(String name)
返回已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public float getSingle(int index)
返回已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public float getSingle(String name)
返回已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public short getByte(int index)
返回已知字段类型的值,如果字段类型不是“字节”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 待返回其值的指定字段的索引。public short getByte(String name)
返回已知字段类型的值,如果字段类型不是“字节”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 待返回其值的指定字段的名称。public byte[] getLongBinary(int index)
返回已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。public byte[] getLongBinary(String name)
返回已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。public Object getFieldValue(String name)
name
- 要取其值的字段的名称。public Geometry getGeometry()
Recordset
类的示例。public int getID()
public Object getVariantID()
public int getCurrentIndex()
public boolean move(int count)
Recordset
的范围,将会返回 false,当前记录不移动。count
- 移动的记录数。public boolean moveFirst()
Recordset
类的示例。public boolean moveLast()
public boolean moveNext()
public boolean movePrev()
public boolean moveTo(int position)
position
- 移动到的位置,即第几条记录。位置从零开始,moveTo(0)
和 moveFirst()
等效。public boolean refresh()
update()
的区别:update()
方法是提交修改结果,而 refresh()
方法是动态刷新记录集,在多用户并发操作时,为了动态显示数据集中的变化,经常用到 refresh()
方法。public boolean seekID(int id)
id
- 要搜索的 ID 号。public boolean seekID(Object value)
id
- 为指定类型的 ID 号,支持 INT32、INT64。public boolean setFieldValue(int index, Object value)
index
- 要修改的字段的序号。value
- 新字段值。public boolean setFieldValue(String name, Object value)
name
- 要修改的字段的名称。value
- 新字段值。public boolean setByte(int index, short value)
设置已知字段类型的值,如果字段类型不是“字节”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要设置其值的指定字段的索引。value
- 要设置的字节值。public boolean setByte(String name, short value)
设置已知字段类型的值,如果字段类型不是字节类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要设置其值的指定字段的名称。value
- 要设置的 byte 值。public boolean setInt32(String name, int value)
设置已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 待返回其值的指定字段的名称。value
- 要设置的值。public boolean setInt32(int index, int value)
设置已知字段类型的值,如果字段类型不是“32位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 待返回其值的指定字段的索引。value
- 要设置的值。public boolean setInt16(String name, short value)
设置已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要设置其值的指定字段的名称。value
- 要设置的 short 值。public boolean setInt16(int index, short value)
设置已知字段类型的值,如果字段类型不是“16位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要设置其值的指定字段的索引。value
- 要设置的 short 值。public boolean setInt64(String name, long value)
设置已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 待返回其值的指定字段的名称。value
- 要设置的值。public boolean setInt64(int index, long value)
设置已知字段类型的值,如果字段类型不是“64位整型”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 待返回其值的指定字段的索引。value
- 要设置的值。public boolean setDouble(String name, double value)
设置已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setDouble(int index, double value)
设置已知字段类型的值,如果字段类型不是“双精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setSingle(String name, float value)
设置已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setSingle(int index, float value)
设置已知字段类型的值,如果字段类型不是“单精度”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setBoolean(String name, boolean value)
设置已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setBoolean(int index, boolean value)
设置已知字段类型的值,如果字段类型不是“布尔”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setString(String name, String value)
设置已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setString(int index, String value)
设置已知字段类型的值,如果字段类型不是“文本”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setJsonB(String name, String value)
设置已知字段类型的值,如果字段类型不是“JsonB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setJsonB(int index, String value)
设置已知字段类型的值,如果字段类型不是“JsonB”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setLongBinary(String name, byte[] value)
设置已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
该方法只对二进制类型的字段有效,若字段为其他类型,则返回 false。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setLongBinary(int index, byte[] value)
设置已知字段类型的值,如果字段类型不是“二进制”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setDateTime(String name, Date value)
设置已知字段类型的值,如果字段类型不是 DateTime,可能会产生数据变化、精度丢失甚至返回失败等问题。
name
- 要取其值的字段的名称。value
- 要设置的值。public boolean setDateTime(int index, Date value)
设置已知字段类型的值,如果字段类型不是“日期”类型,可能会产生数据变化、精度丢失甚至返回失败等问题。
index
- 要取其值的字段的索引。value
- 要设置的值。public boolean setFieldValueNull(int index)
index
- 要设定的字段的序号。public boolean setFieldValueNull(String name)
name
- 要设定的字段的名称。public boolean setGeometry(Geometry geometry)
建议在使用该接口进行几何对象的修改编辑时,调用 edit
、setGeometry 和 update
方法之间不要插入其它操作,否则可能导致几何对象修改失败,可参见示例。
geometry
- 用来覆盖原几何对象的新几何对象。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(); }
public boolean moveGeometry(Geometry geoMoveVector)
geoMoveVector
- 修改后的空间对象。public boolean rotateGeometry(Geometry geoOrigin, double angle)
geoOrigin
- 旋转的原点。angle
- 旋转角度。public double statistic(int fieldIndex, StatisticMode mode)
fieldIndex
- 被统计字段的序号。mode
- 统计方式。public double statistic(String fieldName, StatisticMode mode)
fieldName
- 被统计字段的名称。mode
- 统计方式。Selection
类的示例。public void dispose()
public Recordset.BatchEditor getBatch()
EngineType
中的可写文件型引擎和数据库型引擎类型数据源均支持批量更新操作。
public RepresentationElement getRepresentationElement(String representationField)
什么是制图表达?
制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。
制图表达对象(RepresentationElement
类对象)定义了制图表达显示形式,制图表达对象中包含了几何对象以及几何对象的风格信息,另外,还有制图表达类型来控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见 RepresentationType
类。
representationField
- 用于存储制图表达信息的字段,该字段必须是二进制类型的。public boolean setRepresentationElement(String representationField, RepresentationElement element)
什么是制图表达?
制图表达对象(RepresentationElement
类对象)定义了制图表达显示形式,制图表达对象中包含了几何对象以及几何对象的风格信息,另外,还有制图表达类型来控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见 RepresentationType
类。
利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:
Recordset.setRepresentationElement(String representationField, TextStyle style, Object customValue)
方法,将该文本几何对象所关联制图表达信息写入指定的制图表达字段中;依次进行,直到将需要设置制图表达信息的几何对象设置完毕。制图表达信息的显示:
当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer
对象的 setRepresentationField()
方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。
representationField
- 用于存储制图表达信息的字段,该字段必须是二进制类型的。element
- 指定的制图表达对象。public boolean setRepresentationElement(String representationField, GeoStyle style, Object customValue)
什么是制图表达?
制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。
利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:
Recordset.setRepresentationElement(String representationField, GeoStyle style, Object customValue)
方法,将该几何对象所关联制图表达信息写入指定的制图表达字段中;制图表达信息的显示:
当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer
对象的 setRepresentationField()
方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。
利用该方法设置的几何对象的制图表达,在显示时将使用原来的几何对象,但几何对象的风格采用该方法设置的风格显示。
representationField
- 用于存储制图表达信息的字段,该字段必须是二进制类型的。style
- 制图表达时使用的风格,即矢量数据集中使用制图表达的原几何对象将采用该参数设置的几何对象的风格进行显示。customValue
- 自定义的属性。public boolean setRepresentationElement(String representationField, TextStyle style, Object customValue)
什么是制图表达?
制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。
利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:
Recordset.SetRepresentationElement(String representationField, Geometry geometry, RepresentationType type, Object curtomValue)
方法,将该几何对象所关联制图表达信息写入指定的制图表达字段中;制图表达信息的显示:
当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer
对象的 setRepresentationField()
方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。
利用该方法设置的文本几何对象的制图表达,在显示时将使用原来的文本几何对象,但文本几何对象的风格采用该方法设置的风格显示。
representationField
- 用于存储制图表达信息的字段,该字段必须是二进制类型的。style
- 制图表达时使用的文本样式,即文本数据集中使用制图表达的原文本几何对象将采用该参数设置的的风格进行显示。customValue
- 自定义的属性。public boolean setRepresentationElement(String representationField, Geometry geometry, RepresentationType type, Object customValue)
什么是制图表达?
制图表达是矢量数据集中几何对象所关联的信息,它可以使相应的几何对象在地图窗口中显示时,采用其他的表现方式,而原来的几何对象不再显示,注意原几何对象的数据并没有改变,只是显示方式有所变化。
利用该方法设置矢量数据集中的几何对象的制图表达信息的流程:
Recordset.SetRepresentationElement(String representationField,RepresentationElement element)
方法,将该几何对象所关联的制图表达对象所记录的信息写入指定的制图表达字段中;制图表达信息的显示:
当矢量数据集作为图层显示在地图窗口中时,通过该矢量数据集所对应的 Layer
对象的setRepresentationField()
方法指定存储制图表达信息的字段,那么在图层显示时,就会根据制图表达字段中存储的信息显示相应的几何对象,制图表达信息只是以另一种方式可视化显示数据集中的几何对象,并没有改变原几何对象的空间和属性信息。
representationField
- 用于存储制图表达信息的字段,该字段必须是二进制类型的。geometry
- 制图表达时使用的几何对象,该几何对象将取代矢量数据集中与之关联的几何对象进行显示。该参数包含了用于制图表达对象的几何信息和显示风格信息。type
- 制图表达类型。制图表达类型可以控制一些显示,包括是否显示原几何对象、是否显示设置的风格和被制图表达的对象是否可见,详细信息请参见 RepresentationType 类。customValue
- 自定义的属性。public boolean wasNull()
@Deprecated public boolean setValues(Map<String,Object> map)
只支持 UDB 引擎,不推荐使用。
values
- 需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。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(); }
@Deprecated public boolean setValues(Map<String,Object> map, Geometry geometry)
只支持 UDB 引擎,不推荐使用。
map
- 需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。geometry
- 用于修改的几何对象。setValues(Map)
的批量修改的示例。@Deprecated public boolean setValues(Object[] values)
只支持 UDB 引擎,不推荐使用。。
values
- 字段数组,需要和字段顺序保持相同的索引值。setValues(Map)
的批量修改的示例。@Deprecated public boolean setValues(Object[] values, Geometry geometry)
只支持 UDB 引擎,不推荐使用。。
values
- 字段数组,需要和字段顺序保持相同的索引值。geometry
- 用于修改的几何对象setValues(Map)
的批量修改的示例。public Object[] getValues()
public boolean setObject(int index, Object value)
index
- 指定的字段的索引值。value
- 指定的字段值。。public boolean setObject(String name, Object value)
name
- 指定的字段的名称。value
- 指定的字段值。public Object getObject(int index)
index
- 待返回其值的字段的索引。public Object getObject(String name)
name
- 要取其值的字段的名称。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(); }
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); // 获取所有特征要素集 MapallFeatures= recordset.getAllFeatures(); // 关闭并释放记录集 recordset.close(); recordset.dispose(); }
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
- 进度条监听对象。@Deprecated public boolean updateFields(DatasetVector sourceDataset, SpatialRelationType spatialRelationType, String[] sourceFields, String[] targetFields, AttributeStatisticsType attributeStatisticsType, boolean isBorderInside, String errorName, boolean isShowProgress)
sourceDataset
- 提供属性的源数据集。spatialRelationType
- 空间关系类型。sourceFields
- 提供属性的源数据集中用于更新的字段集合。targetFields
- 被更新的目标字段集合。attributeStatisticsType
- 属性字段的取值方式。isBorderInside
- 点在面边界上时,界定其是否被面包含;或线只有端点与面相交时,界定其是否与面相交。errorName
- 记录满足空间关系的 recordsetSrc 中对象个数的字段。isShowProgress
- 是否显示进度条。public boolean updateFields(Recordset sourceRecordset, SpatialRelationType spatialRelationType, String[] sourceFields, String[] targetFields, AttributeStatisticsType attributeStatisticsType, boolean isBorderInside, String errorName, boolean isShowProgress)
sourceRecordset
- 指定的提供属性的记录集。spatialRelationType
- 指定的空间关系。sourceFields
- 指定的提供属性的记录集中用于更新的字段集合。targetFields
- 指定的被更新的字段集合。attributeStatisticsType
- 指定的属性字段的取值方式。isBorderInside
- 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。errorName
- 指定的记录满足空间关系的提供属性的记录集中对象个数的字段。该字段必须为整型。isShowProgress
- 指定是否显示进度条。public int[] getIDsByGeoRelation(DatasetVector sourceDataset, SpatialRelationType spatialRelationType, boolean isBorderInside, boolean isShowProgress)
该方法返回的数组其结构可归纳为:[当前记录集中第一个对象的 SMID,相关数据集中与之满足空间关系的对象个数,相关数据集中与之满足空间关系的第一个对象的 SMID,第二个,...,当前记录集中第二个对象的 SMID,...,依此类推]。
更多介绍,请参阅 DatasetVector.getIDsByGeoRelation
方法。
sourceDataset
- 指定的与当前记录集相关的数据集。spatialRelationType
- 指定的空间关系。isBorderInside
- 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。isShowProgress
- 指定是否显示进度条。public int[] getIDsByGeoRelation(Recordset sourceRecordset, SpatialRelationType spatialRelationType, boolean isBorderInside, boolean isShowProgress)
该方法返回的数组其结构可归纳为:[当前记录集中第一个对象的 SMID,相关记录集中与之满足空间关系的对象个数,相关记录集中与之满足空间关系的第一个对象的 SMID,第二个,...,当前记录集中第二个对象的 SMID,...,依此类推]。
更多介绍,请参阅 DatasetVector.getIDsByGeoRelation
方法。
sourceRecordset
- 指定的与当前记录集相关的记录集。spatialRelationType
- 指定的空间关系。isBorderInside
- 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。isShowProgress
- 指定是否显示进度条。public int[] getIDsByGeoRelation(Geometry[] sourceGeometries, SpatialRelationType spatialRelationType, boolean isBorderInside, boolean isShowProgress)
该方法返回的数组其结构可归纳为:[当前记录集中第一个对象的 SMID,相关几何对象数组中与之满足空间关系的对象个数,相关几何对象数组中与之满足空间关系的第一个对象的 ID,第二个,...,当前记录集中第二个对象的 SMID,...,依此类推]。
需要注意,相关几何对象数组中的对象必须具有不重复的 ID,该 ID 可通过 Geometry
的 getID
方法返回,以及通过 setID
方法设置。如果相关的几何对象数组中的对象来自于记录集,并且没有手动修改对象的 ID,那么返回的是对象的 SMID。如果对象没有明确的来源,或者 ID 有重复,必须为它们重新设置不同的 ID。
更多介绍,请参阅 DatasetVector.getIDsByGeoRelation
方法。
sourceGeometries
- 指定的与当前记录集相关的几何对象数组。spatialRelationType
- 指定的空间关系。isBorderInside
- 指定边界处理方式,即位于面边线上的点是否被面包含,或线只有端点与面相交时是否与面相交。isShowProgress
- 指定是否显示进度条。public void addSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public void removeSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public boolean toDatasetVectorWithSmID(String strName, DatasetType datasetType)
strName
- 数据集名称。datasetType
- 数据集类型。public void disableRecordsetEditListener(String relationshipName)
relationshipName
- 关系类名称.Copyright © 2021–2024 SuperMap. All rights reserved.