基于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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐