ljz_08 2021-03-30 22:28 采纳率: 0%
浏览 51

ArcEngine更新Polyline要素的图形报错:无法更新面积或长度字段来影响形状更新

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);
}

  • 写回答

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属性设置为其值。这应该解决你遇到的问题。

    评论

报告相同问题?