arcgis属性表无法编辑

近期工作当中总是遇到这种情况,打开ArcGIS属性表,开启编辑模式,可是发现怎么也无法编辑属性表的字段,无论是数据重新保存还是重启ArcGIS都无济于事。经过研究发现,是因为当各个数据处于不同的坐标系时,就会发生这种情况。既然知道问题所在,解决问题就很简单了,投影转换。

### 如何在 ArcGIS编辑属性表 #### 使用 ArcGIS Engine 编辑属性表 为了实现对属性表编辑功能,可以利用 `ESRI.ArcGIS.Geodatabase` 命名空间中的接口来访问和修改要素类的数据。下面是一个简单的例子展示如何获取并更新特定图层上的记录: ```csharp // 获取当前地图对象 IMap pMap = axMapControl1.Map; // 遍历所有图层寻找目标 Feature Layer foreach (ILayer layer in pMap.Layer) { if (!(layer is IFeatureLayer)) continue; var featureLayer = (IFeatureLayer)layer; // 这里可以根据实际需求判断是否为目标图层 // 开始编辑会话 IWorkspaceEdit workspaceEdit = ((IDataset)featureLayer.FeatureClass).Workspace as IWorkspaceEdit; try { workspaceEdit.StartEditing(true); workspaceEdit.StartEditOperation(); // 创建查询过滤器用于定位要更改的特性 IQueryFilter queryFilter = new QueryFilterClass(); queryFilter.WhereClause = "SOME_FIELD = 'some_value'"; // 更新满足条件的第一条记录 ICursor cursor = featureLayer.Search(queryFilter, false); IRow row = cursor.NextRow(); while(row != null){ row.set_Value(rowIndex, newValue); // rowIndex 是字段索引号,newValue是要设置的新值 row.Store(); // 存储变更后的行数据 row = cursor.NextRow(); } workspaceEdit.StopEditOperation(); workspaceEdit.StopEditing(true); } catch(Exception ex) { /* 错误处理 */ } } ``` 上述代码片段展示了通过编程方式启动编辑事务、应用筛选查找待更正的对象实例以及提交最终的结果[^3]。 对于那些遇到保存失败问题的人群来说,可能是因为存在未定义或零长度字符串类型的字段值所引起的异常情况。因此建议先清理这些潜在的问题再尝试重新执行保存动作[^4]。 另外值得注意的是,在完成任何编辑之前都应该确认已经正确启用了版本化管理(如果适用),并且确保工作区处于可写状态以便能够成功持久化所做的改动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值