private void ModifyPolyline (IFeature origFeature, IPolyline newLine)
{
IWorkspaceEdit lineWorkspaceEdit = (origFeature.Class as IDataset).Workspace as IWorkspaceEdit;
lineWorkspaceEdit.StartEditing(true);
lineWorkspaceEdit.StartEditOperation();
origFeature.Shape = newLine;//此处报错:无法更新面积或长度字段来影响形状更新
origFeature.Store();
lineWorkspaceEdit.StopEditOperation();
lineWorkspaceEdit.StopEditing(true);
}
ArcEngine更新Polyline要素的图形报错:无法更新面积或长度字段来影响形状更新
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-07-23 19:55关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在.NET中,
IWorkspaceEdit接口并不支持直接修改IDataset中的Shape属性。但是,你可以通过创建一个新的IPolyline对象并设置其Geometry属性来达到你的目的。以下是一个示例:
private void ModifyPolyline(IFeature origFeature, IPolyline newLine) { if (newLine == null) return; // 检查新线是否为null // 创建新的polyline对象,并将原始线程的geometry设置为其几何 IPolyline newLineObject = new LineString(newLine.Geometry.Coordinates); origFeature.Shape = newLineObject; }这段代码首先检查
newLine是否为null,然后创建一个新对象并将原对象的Geometry属性设置为其值。这应该解决你遇到的问题。解决 无用评论 打赏 举报