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
结果
制图
有地图编辑
这个视频里录到了
然后保存编辑
鹰眼试图
地图浏览