Arcgis二次开发-ArcEngine地图编辑

ArcGIS Engine 是 Esri 公司的一款开发工具,用于构建桌面 GIS 应用程序。地图编辑是 ArcGIS Engine 提供的功能之一,它允许用户在地图上进行编辑操作,包括添加、删除、移动和修改地图要素。这些要素可以是点、线、面等地理数据,用户可以通过编辑功能对它们进行操作,从而更新地图数据集。

使用 ArcGIS Engine 进行地图编辑,开发人员可以创建自定义的 GIS 应用程序,提供用户友好的界面来执行地图编辑操作。这些应用程序可以针对特定的工作流程或业务需求进行定制,使用户能够更有效地管理地理信息数据。地图编辑功能通常包括捕捉、精确位置调整、符号化、拓扑编辑等功能,以帮助用户维护地图数据的准确性和完整性。

   #region 开始编辑
        private void menuStartEdit_Click(object sender, EventArgs e)
        {
            map = axMapControl1.Map;
            activeView = map as IActiveView;
            if (axMapControl1.Map.LayerCount == 0)
            {
                MessageBox.Show("请加载编辑图层", "提示", MessageBoxButtons.OK);
                return;
            }
            map.ClearSelection();
            activeView.Refresh();
            //调用操作函数,将“开始编辑”设置为非激活状态,其他子菜单项设置为激活状态
            ChangeButtonState(false);
            //初始化“图层选择”
            menuSelectLayer.Items.Clear();
            for (int i = 0; i < axMapControl1.LayerCount; i++)
            {
                menuSelectLayer.Items.Add(axMapControl1.Map.get_Layer(i).Name);
            }
            //默认选择顶层图层
            if (menuSelectLayer.Items.Count != 0)
            {
                menuSelectLayer.SelectedIndex = 0;
            }
            //获取当前编辑图层工作空间
            IDataset dataSet = currentLayer.FeatureClass as IDataset;
            IWorkspace workspace = dataSet.Workspace;
            //设置编辑模式,如果是ArcSDE采用版本模式
            if (workspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
            {
                engineEditor.EditSessionMode = esriEngineEditSessionMode.esriEngineEditSessionModeVersioned;
            }
            else
            {
                engineEditor.EditSessionMode = esriEngineEditSessionMode.esriEngineEditSessionModeNonVersioned;
            }
            //设置编辑任务
            engineEditTask = engineEditor.GetTaskByUniqueName("ControlToolsEditing_CreateNewFeatureTask");
            engineEditor.CurrentTask = engineEditTask;
            engineEditor.EnableUndoRedo(true);//是否可以进行撤销、恢复操作
            engineEditor.StartEditing(workspace, map);//开始编辑操作            
        }
        #endregion

        #region 保存编辑
        private void menuSaveEdit_Click(object sender, EventArgs e)
        {
            ICommand saveEditCom = new SaveEditCommandClass();
            saveEditCom.OnCreate(axMapControl1.Object);
            saveEditCom.OnClick();
        }
        #endregion

        #region 结束编辑
        private void menuEndEdit_Click(object sender, EventArgs e)
        {
            try
            {
                ICommand stopEditCommand = new StopEditCommandClass();
                stopEditCommand.OnCreate(axMapControl1.Object);
                stopEditCommand.OnClick();
                axMapControl1.CurrentTool = null;
                axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
            }

            catch (Exception exception)
            {
            }
            //调用操作函数,将“开始编辑”设置为激活状态,其他子菜单项设置为非激活状态
            ChangeButtonState(true);
        }
        #endregion

1.功能完整性

输入

打开文件

结果

加载shp

结果

制图

有地图编辑

这个视频里录到了

然后保存编辑

鹰眼试图

地图浏览

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值