IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> GIS二次开发:实验四 编辑工具条的实现 -> 正文阅读

[开发工具]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) 开始编辑按钮

    /// <summary>
    /// 开始编辑
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    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) 添加新要素

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

}

(5) 编辑要素

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

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

}

(6) 撤销与重做

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

(7) 节点编辑

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

(8) 停止编辑

    /// <summary>
    /// 终止编辑
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void buttonItem27_Click(object sender, EventArgs e)
    {
        m_engineeditor.StopEditing(true);
    }

四、实验要求

分别采用arcgis engine的toolbarcontrol以及结合自定义工具分别实现矢量文件的编辑工具条。
在这里插入图片描述
在这里插入图片描述

五、实验心得与体会

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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:21:13  更:2022-05-07 11:21:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:32:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码