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

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public bool SetGeometry(
	Geometry geometry
)

参数

geometry
Type: SuperMap.Data..::.Geometry
用来覆盖原几何对象的新几何对象

返回值

设置成功返回true,否则返回false。

备注

1.当传入的参数为null时抛出异常 ArgumentNullException;

2.当属性表数据集调用此接口,且传入参数不为 null 时,抛出异常 ArgumentException;

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

示例

以下代码示范如何修改记录集当前位置的几何对象。

假设打开一个工作空间workspace对象,工作空间中包含名为 World 的矢量数据集 dataset_world。

CopyC#
// 获取两个数据集(包含 1<=SMID<=15 的几何对象)
DatasetVector dataset_world = workspace.Datasources[0].Datasets["World"] as DatasetVector;
DatasetVector dataset = workspace.Datasources[0].Datasets["Ocean"] as DatasetVector;

// 得到“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();
}

版本信息

SuperMap iObjects .NET


请参见