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运行时加 ...
随机推荐
- 爬虫学习(十一)——bs4基础学习
ba4的介绍: bs4是第三方提供的库,可以将网页生成一个对象,这个网页对象有一些函数和属性,可以快捷的获取网页中的内容和标签 lxml的介绍 lxml是一个文件的解释器,python自带的解释器是: ...
- Mysql查看锁等信息SQL语句
查看锁等信息,包括锁信息: select "HOLD:",ph.id h_processid,trh.trx_id h_trx_id,trh.trx_started h_start ...
- Python文件IO(普通文件读写)
## 打开一个文件 - fileobj = open(filename, mode) 其中: fileobj是open()返回的文件对象 filename是该文件的字符串名 mode是指明文件类型和操 ...
- Oracle_11g中解决被锁定的scott用户的方法
在安装完Oracle10g和创建完oracle数据库之后,想用数据库自带的用户scott登录,看看连接是否成功. 问题: 在cmd命令中,用“sqlplus scott/ tiger”登录时,老是提 ...
- Scala构建元数据
反射方式构建元数据: 通过反射来获取RDD中的Schema信息.这种方式适合于列名(元数据)已知的情况下 步骤: 1.SparkConf配置环境 2.SparkContext初始化上下文 3.SQLC ...
- 学习python第十三天,函数5 装饰器decorator
定义:装饰器本质是函数,(装饰其他函数)就是为其他函数添加附加功能原则:1.不能修改被装饰的函数的源代码 2.不能修改装饰的函数的调用方式 实现装饰器知识储备1函数即变量2.高阶函数,满足2个条件之一 ...
- K-均值聚类——电影类型
K-均值聚类 K-均值算法试图将一系列样本分割成K个不同的类簇(其中K是模型的输入参数),其形式化的目标函数称为类簇内的方差和(within cluster sum of squared errors ...
- Python os.walk() 简介
Table of Contents 1. os.walk目录遍历 1.1. os.walk 1.2. 例子 1.2.1. 测试topdown 1.2.2. 运行时修改遍历目录 2. 参考资料 os.w ...
- 基于CSS多列实现瀑布流
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- laravel5.5表单验证
1. 在第一次验证失败后停止 有时,你希望在某个属性第一次验证失败后停止运行验证规则.为了达到这个目的,附加 bail 规则到该属性: $this->validate($request, [ ' ...