AE中实现Control中的各种图形工具的方法
添加命名空间
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Controls;
A类:前面有Controls 后面有tool的工具都可以用同一类的代码实现(最后的tool或toolclass都可以)
示例:
private void 放大ToolStripMenuItem_Click(object sender, EventArgs e)
{
ICommand Cmd = new ControlsMapZoomInTool();
Cmd.OnCreate(this.axMapControl1.Object);
this.axMapControl1.CurrentTool = Cmd as ITool;
}
同类的方法中用到此方法的还有以下等:
放大: ICommand Cmd = new ControlsMapZoomInTool();
缩小: ControlsMapZoomOutTool Cmd = new ControlsMapZoomOutTool();
漫游: ControlsMapPanTool Cmd = new ControlsMapPanTool();
绘制矩形:ControlsNewRectangleTool Cmd = new ControlsNewRectangleTool();
绘制圆:ControlsNewCircleTool Cmd = new ControlsNewCircleTool();
绘制椭圆: ControlsNewEllipseTool Cmd = new ControlsNewEllipseTool();
绘制曲线: ControlsNewCurveTool Cmd = new ControlsNewCurveTool();
绘制直线: ControlsNewLineTool Cmd = new ControlsNewLineTool();
绘制点标记: ControlsNewMarkerTool Cmd = new ControlsNewMarkerTool();
流方法绘图: ControlsNewFreeHandTool Cmd = new ControlsNewFreeHandTool();
墨水绘图: ControlsInkPenTool Cmd = new ControlsInkPenTool();
ControlsInkGenericDrawTool Cmd = new ControlsInkGenericDrawTool();
旋转工具: ControlsMapRotateTool Cmd = new ControlsMapRotateTool();
旋转图形: ControlsRotateElementTool Cmd = new ControlsRotateElementTool();
选择要素:ControlsSelectFeaturesTool Cmd = new ControlsSelectFeaturesTool();
选择图形: ControlsSelectTool Cmd = new ControlsSelectTool();
属性工具: ControlsMapIdentifyTool Cmd = new ControlsMapIdentifyTool();
测量工具: ControlsMapMeasureTool Cmd = new ControlsMapMeasureTool();
超链接工具: ControlsMapHyperlinkTool Cmd = new ControlsMapHyperlinkTool();
B类:Command命令的实现,前面是Controls 后面是CommandClass命令的都可以用这个程序
示例:
全图显示:
ICommand Cmd = new ControlsMapFullExtentCommandClass();
Cmd.OnCreate(this.axMapControl1.Object);
Cmd.OnClick();
类似可以实现的功能有:
坐标查找: ICommand Cmd = new ControlsMapGoToCommand();
查找命令:ICommand Cmd = new ControlsMapFindCommandClass();
创建书签: ICommand Cmd = new ControlsMapCreateBookmarkCommandClass();
墨迹设置:ICommand Cmd = new ControlsInkOptionsCommandClass();
清楚旋转: ICommand Cmd = new ControlsMapClearMapRotationCommandClass();
转到页底: ICommand Cmd = new ControlsMapPageDownCommandClass();
转到页左: ICommand Cmd = new ControlsMapPageLeftCommandClass();
转到页右: ICommand Cmd = new ControlsMapPageRightCommandClass();
转到页上:ICommand Cmd = new ControlsMapPageUpCommandClass();
向右: ICommand Cmd = new ControlsMapRightCommandClass();
向上: ICommand Cmd = new ControlsMapUpCommandClass();
中心放大:ICommand Cmd = new ControlsMapZoomInFixedCommandClass();
中心缩小: ICommand Cmd = new ControlsMapZoomOutFixedCommandClass();
后一视图: ICommand Cmd = new ControlsMapZoomToLastExtentBackCommandClass();
前一视图: ICommand Cmd = new ControlsMapZoomToLastExtentForwardCommandClass();
地方查找: ICommand Cmd = new ControlsMyPlacesCommandClass();
打开文档: ICommand Cmd = new ControlsOpenDocCommandClass();
撤销: ICommand Cmd = new ControlsRedoCommandClass();
图形向左旋转: ICommand Cmd = new ControlsRotateLeftCommandClass();
向右旋转: ICommand Cmd = new ControlsRotateRightCommandClass();
文档另存为: ICommand Cmd = new ControlsSaveAsDocCommandClass();
选择第一个图层中的所有元素:ICommand Cmd = new ControlsSelectAllCommandClass();
选择屏幕中的所有部分: ICommand Cmd = new ControlsSelectScreenCommandClass();
撤销命令:ICommand Cmd = new ControlsUndoCommandClass();
缩放到被选择的部分: ICommand Cmd = new ControlsZoomToSelectedCommandClass();
************************************************************
补充:上面的某些功能的其他实现方法
几个特殊的方法:
private void 全图ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.axMapControl1.Extent = this.axMapControl1.FullExtent;
}
private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
{
axMapControl1.Refresh();
}
private void 中心放大ToolStripMenuItem_Click(object sender, EventArgs e)
{
IEnvelope objEnvelope = null;
objEnvelope = axMapControl1.Extent;
objEnvelope.Expand(0.2, 0.2, true);
axMapControl1.Extent = objEnvelope;
}
private void 中心缩小ToolStripMenuItem_Click(object sender, EventArgs e)
{
IEnvelope objEnvelope = null;
objEnvelope = axMapControl1.Extent;
objEnvelope.Expand(2, 2, true);
axMapControl1.Extent = objEnvelope;
}
private void 前一视图ToolStripMenuItem_Click(object sender, EventArgs e)
{
IExtentStack pExtentStack = null;
pExtentStack = axMapControl1.ActiveView.ExtentStack;
if (pExtentStack.CanUndo())
{
pExtentStack.Undo();
}
axMapControl1.Refresh();
}
private void 后一视图ToolStripMenuItem_Click(object sender, EventArgs e)
{
IExtentStack pExtentStack = null;
pExtentStack = axMapControl1.ActiveView.ExtentStack;
if (pExtentStack.CanRedo())
{
pExtentStack.Redo();
}
axMapControl1.Refresh();
}
AE中实现Control中的各种图形工具的方法的更多相关文章
- AE开发中实现Control中的各种图形工具的方法(转)
Controls中的工具基本可以分为两类: 第一类:点击工具图标或按钮后,当前axMapControl的工具即为所点击的工具命令. 前面有Controls 后面有tool的工具都可以用同一类的代码实现 ...
- 关于eclipse中DDMS中Emulator Control选项卡为灰色不可用
首先先感谢版主:http://blog.csdn.net/noname666/article/details/51670905#reply 方法一的出处:http://stackoverflow.co ...
- Sublime text 3 中Package Control 的安装与使用方法和解决Sublime Text 3不能正确显示中文的问题
Sublime text 3 中Package Control 的安装与使用方法,英文好可以在这个网址看看, 下面简单的说明一下 : https://packagecontrol.io/install ...
- ArcGIS中如何导出单个矢量要素图形
原文:ArcGIS中如何导出单个矢量要素图形 在ARCGIS中载入了一张含有省界的中国地图,是SHP文件.现在我只想要其中一块地区的,实现方法如下: 加入到ArcGIS后,右击图层,打开属性表(att ...
- MVC之Control中使用AOP
原文转载自http://www.cnblogs.com/iamlilinfeng/archive/2013/03/02/2940162.html 本文目标 一.能够使用Control中的AOP实现非业 ...
- Control中的AOP实现非业务需求
一.能够使用Control中的AOP实现非业务需求的功能 本文目录 一.ActionFilterAttribute类 二.实现自定义Attribute 一.ActionFilterAttribute类 ...
- web forms page和control的生命周期life cycle交互,以及page生命周期中每个event中需要做什么事情
只有 page_load和page_init这些可以autoeventwireup RenderControl只提供override public override void RenderContro ...
- WPF中CAD control的XAML实现
原文:WPF中CAD control的XAML实现 下面这个XAML文件是cad control里面最重要的一部分,使用Grid包含Viewport,Viewport中包括Camera和mod ...
- OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?
OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)? 图形硬件供应商,需要为显示适配器编,编写用户模式显示驱动程序.用户模式显示驱动程序,是由Microsoft Direct3D运行时加 ...
随机推荐
- (三)Swagger配置多项目共用
重构了多个项目后,在联调接口时,查看api会发现Swagger在几个项目可用,有几个不可用,配置都一样,扫描也充分,那问题出在哪里呢?先仔细找了下Docket的源码,发现有这么个方法: /** * P ...
- css 自动换行,超出省略号代替
overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; ...
- iOS常用控件-UITableViewCell
一. 封装cell: 1.加载xib文件的两种方式 <方式1> (NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] ...
- POJ:2674-Linear world(名字交换碰撞)
Linear world Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 4514 Accepted: 1025 Descript ...
- vue计算属性和观察者
1. 计算属性 模板内的表达式非常便利,但在模板中放入太多的逻辑会让模板过重且难以维护,所有就有了计算属性 例子: //html代码 <div id="example"> ...
- CenOS 配置C/C++语言
1.下载eclipse+CDT组合包. 2.电脑上安装GCC, G++ 3.在eclipse上创建一个C++ project 4. Eclipse CDT功能很强大,安装完虽然可以编译运行c++程序, ...
- 20、AngularJs知识点总结 part-2
1.作用域 当你在angularJs中创建控制器时,可以将$scope对象作为一个参数进行传递: scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用 ...
- 【Kernal Support Vector Machine】林轩田机器学习技术
考虑dual SVM 问题:如果对原输入变量做了non-linear transform,那么在二次规划计算Q矩阵的时候,就面临着:先做转换,再做内积:如果转换后的项数很多(如100次多项式转换),那 ...
- appium-手势密码实现-automationName 是automator2
上一篇博客已经说了 appium-手势密码实现-automationName 是Appium的情况 下面就说一下automator2的情况: 手势密码的moveTo方法的参数进行了改变. 参数是相对于 ...
- 常用模块(sys)
import sys# sys.argv() # 命令参数List,第一个元素是程序本身路径,如:python test.py run db# sys.exit('shh') # 退出程序,正常退出时 ...