ArcGIS Engine 编辑- IEngineEditor

IEngineEditor接口被EngineEditorClass实现,而EngineEditor对象相当于我们在ArcMap中编辑的时候用到的Editor工具条,回想下我们要在一个线图层中添加一条新的要素,我们往往是按照下面的步骤

1)start editing

2)将targetlayer 设置为我们要编辑的图层

3)设置task 为create new feature

4)然后使用草图工具开始编辑。

其实这4个分别对应了四个接口,而这4个接口都被直接或间接被EngineEditorClass实现。这4个接口分别是:

IEngineEditor

IEngineEditLayer

IEngineEditSketch

还有一个间接的

ITask

task是一个任务流,ArcGIS 中的这个task就是对一系列操作的封装,也就是用草图工具所做的一系列动作(mousedown,mousemove等)。

这个示例中我定义了一个给等高线批量赋值的task。

主要代码如下:


             IWorkspaceFactory pWsF = new ShapefileWorkspaceFactory();

             IFeatureWorkspace pFtWs = pWsF.OpenFromFile(@"E:\arcgis\Engine\数据", 0) as IFeatureWorkspace;

             IFeatureClass pFClass = pFtWs.OpenFeatureClass("ctour9_Clip");

             IFeatureLayer pFtLayer = new FeatureLayerClass();

             pFtLayer.Name = "等高线";

             pFtLayer.FeatureClass = pFClass;

             axMapControl1.AddLayer(pFtLayer as ILayer);

             axMapControl1.Refresh();

//启动编辑
             pEngineEditor = new EngineEditorClass();

                     pEngineEditor.StartEditing(pFtWs as IWorkspace, axMapControl1.Map);

             pEngineEditor.StartOperation();

//设置目标图层

             IEngineEditLayers pEditLayer = pEngineEditor as IEngineEditLayers;

             pEditLayer.SetTargetLayer(pFtLayer, 0);

// 设置任务

             pEngineEditor.CurrentTask = new CalculatContourTask() as IEngineEditTask;

//草图工具
             ICommand pSketch = new ControlsEditingSketchToolClass();

             pSketch.OnCreate(axMapControl1.Object);

             axMapControl1.CurrentTool = pSketch as ITool;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值