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运行时加 ...
随机推荐
- struts2之输入验证
输入校验主要分为两种: 基于客户端的校验: 客户端校验主要作用是防止正常浏览者的误输入,仅能对输入进行初步过滤:对于一些用户恶意行为,客户端校验则无能为力. 基于服务端的校验: 服务器接收客户端提交的 ...
- 【word】html转doc的小研究
html转doc,页眉页脚丢失 html 转 doc,是全屏铺满(缩放级别很高)
- Flask初学者:视图函数/方法返回值(HTML模板/Response对象)
返回HTML模板:使用“from flask import render_template”,在函数中传入相对于文件夹“templates”HTML模板路径名称字符串即可(默认模板路径),flask会 ...
- 前言 openwrt简介
什么是openwrt?先看一下度娘怎么说. OpenWRT是一个高度模块化.高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备.电话.小型机器人.智能家居.路由器以及VO ...
- C++基础 inline 默认参数 函数占位参数 函数重载
1. inline内联函数 内联函数用于替换宏, 实例: 其中宏和 ++ 连用有副作用. #include "iostream" using namespace std; #def ...
- Codeforces Round #459 (Div. 2) D. MADMAX DFS+博弈
D. MADMAX time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...
- 输入cin对象的用法
#include<iostream> using namespace std; int main() { int carrots ; cout << "How man ...
- 使用postMan测试insert或者update接口
URL : http://localhost:8099/orderVoice/updateAgentLogin?access_token=7f10e803-f886-47df-b3dc-9ed307d ...
- Sqlite客户端的使用
打开一个数据库sqlite3 ${databaseName} 查看当前打开的数据库.database 查看当前打开的数据库中的表.table 查看指定表结构(实际输出是建表语句).schema ${t ...
- 10.2 ajax
Ajax Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互 ...