栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

GIS二次开发:实验四 编辑工具条的实现

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GIS二次开发:实验四 编辑工具条的实现

实验四 编辑工具条的实现 一、实验目的

1.熟悉arcgis中的编辑工具
2.掌握通过arcgis engine 的toolbarcontrol添加编辑工具条
3.掌握自定义工具条的添加

二、实验仪器与设备

计算机、visual studio 软件、ArcGIS engine 开发包

三、实验内容与步骤
  1. 通过arcgis engine 的toolbarcontrol添加编辑工具条
    (1)从工具箱中添加一个toolbarcontrol到主界面中

(2)在toolbarcontrol中右键属性打开属性设置对话框,设置Buddy,绑定地图显示窗口。

(3)选择item页面,点击添加,选择相应的编辑按钮。

  1. 自定义工具条
    自定义工具条实现的基本步骤:
    (1)调用IEngineEditor接口的StartEditing方法打开一个编辑对象;
    (2)将设定好参数的IEngineEditor接口跳转到IEngineEditLayers接口,设置目标图层;
    (3)通过IEngineEditTask对象设定编辑任务,并将其传递给当前的EngineEditor对象的CurrentTask属性;
    (4)实现所要执行的编辑操作(使用工具代替);
    (5)使用IEngineEditor接口的StopEditing方法,结束编辑任务并保存。
    具体步骤如下:
    (1) 如toolbarcontrol中工具添加一样,添加 新建、编辑、捕捉、属性编辑、节点编辑、撤销、重做等工具;
    (2) 在界面上添加对应的自定义工具和图层选择下拉列表

(3) 开始编辑按钮

    /// 
    /// 开始编辑
    /// 
    /// 
    /// 
    private void buttonItem15_Click(object sender, EventArgs e)
    {
        //获取进行编辑的图层
        IFeatureLayer m_cureditlayer = getfeaturelayerbyname(this.cb_layerselect.Text);
        if (m_cureditlayer == null)
        {
            MessageBox.Show("请选择可编辑的图层!");
            return;

        }
        //编辑工具初始化
        m_engineeditor = new EngineEditorClass();
        //设置是否可以进行撤销、重做
        m_engineeditor.EnableUndoRedo(true);
        //开始编辑操作
        m_engineeditor.StartEditing(((IDataset)m_cureditlayer.FeatureClass).Workspace, this.axMapControl1.Map);
        //设置编辑图层
        IEngineEditLayers editlayer = m_engineeditor as IEngineEditLayers;
        editlayer.SetTargetLayer(m_cureditlayer, 0);
        //设置当前的编辑任务(创建新要素)
        m_engineeditor.CurrentTask = m_engineeditor.GetTaskByUniqueName("ControlToolsEditing_CreateNewFeatureTask");

    }

(4) 添加新要素

/// 
/// 添加新要素
/// 
/// 
/// 
private void buttonItem21_Click(object sender, EventArgs e)
{
    ICommand cmd = axToolbarControl1.GetItem(1).Command;
    axMapControl1.CurrentTool = (ITool)cmd;

}

(5) 编辑要素

/// 
/// 属性编辑
/// 
/// 
/// 
private void buttonItem28_Click(object sender, EventArgs e)
{
    ICommand cmd = axToolbarControl1.GetItem(3).Command;
    cmd.OnClick();

}
/// 
/// 移动要素
/// 
/// 
/// 
private void buttonItem22_Click(object sender, EventArgs e)
{
    ICommand cmd = axToolbarControl1.GetItem(2).Command;
    axMapControl1.CurrentTool = (ITool)cmd;

}

(6) 撤销与重做

/// 
/// 撤销
/// 
/// 
/// 
private void buttonItem24_Click(object sender, EventArgs e)
{
    ICommand cmd = axToolbarControl1.GetItem(6).Command;
    cmd.OnClick();
}
/// 
/// 重做
/// 
/// 
/// 
private void buttonItem25_Click(object sender, EventArgs e)
{
    ICommand cmd = axToolbarControl1.GetItem(7).Command;
    cmd.OnClick();
}

(7) 节点编辑

/// 
/// 节点编辑
/// 
/// 
/// 
private void buttonItem23_Click(object sender, EventArgs e)
{
    ICommand cmd = axToolbarControl1.GetItem(4).Command;
    cmd.OnClick();
}

(8) 停止编辑

    /// 
    /// 终止编辑
    /// 
    /// 
    /// 
    private void buttonItem27_Click(object sender, EventArgs e)
    {
        m_engineeditor.StopEditing(true);
    }
四、实验要求

分别采用arcgis engine的toolbarcontrol以及结合自定义工具分别实现矢量文件的编辑工具条。

五、实验心得与体会

1.学会了两种属性编辑的创建方式
2.对属性编辑有了更加深入的认识。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号