Arcgis Engine(ae)接口详解(4):featureClass的feature插入
2017-09-21 00:00
567 查看
//由于测试数据不完善,featureClass在此要只设null值,真实功能要设实际的值 IFeatureClass featureClass = null; //获取某个字段的索引,后面取字段值用到 int xxxFieldIdx = featureClass.FindField("xxx"); //获取到IWorkspaceEdit接口,IWorkspaceEdit是编辑必须的接口 IWorkspaceEdit workspaceEdit = (featureClass as IDataset).Workspace as IWorkspaceEdit; //开始编辑的两个重要方法,StartEditing第一个参数是是否允许Undo,Redo(重做,撤销),如果是后台数据处理功能一般关系不大 workspaceEdit.StartEditing(true); //构成一个EditOperation有StartEditOperation和StopEditOperation方法,Undo,Redo是针对一个EditOperation的 workspaceEdit.StartEditOperation(); //插入要素不止一种方法,此例介绍的是游标插入法,优点是插入速度比较快 //注意此处的游标是插入游标,而不是之前查询功能的查询结果游标,他们接口是一样的,但是获取方式不同 IFeatureCursor featureCursorInsert = null; //IFeatureBuffer跟IFeature用法差不多,可理解为专用于插入的feature IFeatureBuffer featureBuffer = null; //这里加try的原因是,如果编辑时出错,需要调用IWorkspaceEdit的一些方法来回滚修改内容 //而且编辑出错几率比一般功能大 try { //获取插入游标 featureCursorInsert = featureClass.Insert(true); //模拟插入10条要素,当前实际功能不会这样写 for (int i = 0; i < 10; i++) { //创建featureBuffer featureBuffer = featureClass.CreateFeatureBuffer(); //赋值的方式跟编辑一样 //修改属性字段的字段值 featureBuffer.Value[xxxFieldIdx] = "eee"; IPoint point = new PointClass(); point.PutCoords(111, 222); //修改几何字段的字段值 //因为几何字段只有一个,所以不需要字段索引 featureBuffer.Shape = point; //赋值后调用插入游标的InsertFeature方法完成插入一条记录 featureCursorInsert.InsertFeature(featureBuffer); } //保存编辑 //之前的feature.Store()和featureDelete.Delete()都是临时保存,下面两句才是真实的保存 workspaceEdit.StopEditOperation(); //参数1是是否保存,false就是不保存,也就是恢复到修改前的状态 workspaceEdit.StopEditing(true); } catch (Exception ex) { //编辑出错需要以下两句,大意是数据回滚 workspaceEdit.StopEditOperation(); workspaceEdit.StopEditing(false); //此处不记录异常,把异常抛出让系统统一处理 throw new Exception("", ex); }
相关文章推荐
- Arcgis Engine(ae)接口详解(2):featureClass查询
- Arcgis Engine(ae)接口详解(3):featureClass的feature编辑和删除
- Arcgis Engine(ae)接口详解(5):IGeometry几何基础操作
- Arcgis Engine(ae)接口详解(8):临时元素(element)
- Arcgis Engine(ae)接口详解(6):workspace操作
- 关于AE中IFeatureWorkspace接口的CreateFeatureClass方法
- Arcgis Engine(ae)接口详解(7):地图(map)操作
- Arcgis Engine(ae)接口详解(5):IGeometry几何高级操作
- Arcgis Engine(ae)接口详解(1):featureClass
- 【20090312-02】插入和删除Featureclass中feature的几种方法(VB.Net源码)【转载】
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
- 使用ArcGIS Engine连接ArcIMS feature Service 获得FeatureCLass
- 【20110420-01】AE中对现有FeatureClass添加字段的问题
- AE IFeatureClass导出SHP文件
- IFeatureClassManage接口更新图层全图显示时的范围
- 对featureclass中插入和删除feature的几种方法进行了比较
- AE数据转换的代码(FeatureClass To Shape)
- ArcGIS中IFeatureDataConverter接口的ConvertFeatureClass方法例子
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
- AE中FeatureClass的Label的属性设置