基于C#的AE二次开发之地图拉框放大(缩小)、固定放大(缩小)、平移、漫游、(取消)选择等
调用ArcGIS Engine封装好ICommand 类,快速地实现GIS系统的一些基础功能。我的开发环境为ArcGIS Engine 10.2与Visual studio2010,主地图名称为axMapControl1,如果变动则需要修改,将代码填入按钮或菜单栏点击事件中,对主地图进行操作即可实现对功能。(注意相关事件的添加与动态链接库的引入)!
地图拉框放大功能:
ICommand command = new ControlsMapZoomInTool();
command.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = command as ITool;
地图拉框缩小功能:
ICommand command = new ControlsMapZoomOutTool();
command.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = command as ITool;
地图固定放大功能:
axMapControl1.CurrentTool = null;
IEnvelope pEnvelope = axMapControl1.Extent;
pEnvelope.Expand(0.5, 0.5, true);
axMapControl1.Extent = pEnvelope;
axMapControl1.Refresh();
地图固定缩小功能:
axMapControl1.CurrentTool = null;
IEnvelope pEnvelope = axMapControl1.Extent;
pEnvelope.Expand(2, 2, true);
axMapControl1.Extent = pEnvelope;
axMapControl1.Refresh();
地图全图功能:
axMapControl1.CurrentTool = null;
ICommand command = new ControlsMapFullExtentCommand();
command.OnCreate(axMapControl1.Object);
command.OnClick();
地图漫游功能:
ICommand command = new ControlsMapPanTool();
command.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = command as ITool;
地图选择要素功能:
ICommand command = new ControlsSelectFeaturesTool();
command.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = command as ITool;
地图取消选择要素功能:
axMapControl1.CurrentTool = null;
ICommand command = new ControlsClearSelectionCommand();
command.OnCreate(axMapControl1.Object);
command.OnClick();
地图标识要素功能:
ICommand command = new ControlsMapIdentifyTool();
command.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = command as ITool;
地图测量功能:
ICommand command = new ControlsMapMeasureTool();
command.OnCreate(axMapControl1.Object);
axMapControl1.CurrentTool = command as ITool;
此外相关的小功能子类还有许多,可以查阅官网ICommand 类方法,官网ICommand类地址:
https://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//00430000001s000000