用于修改记录集当前位置的几何对象,覆盖原来的几何对象,成功则返回 true。修改记录的几何对象时,系统自动修改与对象有关的系统字段的值,如多边形对象的面积,线段对象的长度等。
命名空间:
SuperMap.Data程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
C# |
---|
public virtual 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(); }