建立自定义命令扩展ArcGIS

合集下载

ArcGIS Engine二次开发——提高篇

ArcGIS Engine二次开发——提高篇

ArcGIS Engine二次开发——提高篇1缩略图(鹰眼)鹰眼功能是GIS的主要功能之一,当地图范围很大时,它可以很好的为用户指明当前地图的范围。

在本小节中我们将学习如何制作这种鹰眼。

1.1添加控件新建一个C#.Net项目,项目名称为OverView,将Form1的名字设置为MainForm,并添加ToolbarControl 、两个MapControl和LicenceControl等四个控件。

布局如下图所示。

左边的axMapControl1用于地图数据显示和操作,右边axMapControl2用于鹰眼显示。

图 1 界面布局在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示,并将ToolbarControl的伙伴控件设为axMapControl1。

图2添加按钮1.2代码添加及解释鹰眼用来显示主窗体当前视图范围在全景视图中的位置,在ArcMap中使用一个线框在鹰眼视图中标识。

当主视图中的视图范围改变时,鹰眼中的线框随之改变,当拖动鹰眼视图中的红线框时,主视图中的视图范围也随之改变。

下面开始实现鹰眼功能,添加using ESRI.ArcGIS.Carto、using ESRI.ArcGIS.Geometry、using ESRI.ArcGIS.Display三个引用。

首先在axMapControl1中视图范围改变时鹰眼窗体要做出对应的响应,即绘制线框并显示,在OnExtentUpdated事件中添加代码如下:private void axMapControl1_OnExtentUpdated(object sender,ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvent e){//创建鹰眼中线框IEnvelope pEnv = (IEnvelope)e.newEnvelope;IRectangleElement pRectangleEle = new RectangleElementClass();IElement pEle = pRectangleEle as IElement;pEle.Geometry = pEnv;//设置线框的边线对象,包括颜色和线宽IRgbColor pColor = new RgbColorClass();pColor.Red = 255;pColor.Green = 0;pColor.Blue = 0;pColor.Transparency = 255;// 产生一个线符号对象ILineSymbol pOutline = new SimpleLineSymbolClass();pOutline.Width = 2;pOutline.Color = pColor;// 设置颜色属性pColor.Red = 255;pColor.Green = 0;pColor.Blue = 0;pColor.Transparency = 0;// 设置线框填充符号的属性IFillSymbol pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = pColor;pFillSymbol.Outline = pOutline;IFillShapeElement pFillShapeEle = pEle as IFillShapeElement;pFillShapeEle.Symbol = pFillSymbol;// 得到鹰眼视图中的图形元素容器IGraphicsContainer pGra = axMapControl2.Map as IGraphicsContainer;IActiveView pAv = pGra as IActiveView;// 在绘制前,清除axMapControl2 中的任何图形元素pGra.DeleteAllElements();// 鹰眼视图中添加线框pGra.AddElement((IElement)pFillShapeEle, 0);// 刷新鹰眼pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);}当鼠标点击鹰眼窗体时,主窗体Extent随之改变。

Arc Engine开发个人手册

Arc Engine开发个人手册

第一章Arc Engine 介绍第二章Arc Engine结构一、Arc Engine包含的主要库文件1、System库ArcGIS结构中最底层的库,包含为其它库提供服务的组件。

2、SystemUI包含为用户界面组件(在ArcEngine中可以进行扩展)定义的接口,包括:ICommand, ITool, 和ItoolControl接口。

3、Geometry处理存储在要素类或其它图形元素中的几何图形要素。

我们经常遇到的基本几何目标有Point, MultiPoint, Polyline 和Polygon4、Display包含显示地理数据的像,如:symbols,colors 等。

我们通常通过类似Map或PageLayout 对像提供的视图(view)来访问Display5、Server包含用来连接到ArcGIS Servers的对像。

我们可以通过GISServerConnection对象访问ArcGIS Server。

6、Output用来将图形输出到设备上,如printers、plotters和hardcopy formats(如:EMF,JPG,BMP等)。

可扩展7、GeoDatabase为geodatabase提供API函数。

可以扩展以支持特定数据格式(Features, Classes, etcetera),可通过PlugInDataSource对象加入自定义的矢量数据源。

Geodatabase支持的本地数据类型无法扩展8、GISClient用来接受ArcIMS和ArcGIS Server.提供的网络服务。

9、DataSourcesFile包含以文件为数据源的(shapefile,coverage, TIN, CAD, SDC, StreetMap, and VPF)部分GeoDatabase API函数的实现。

10、DataSourcesGDB包含以数据库为数据源(Microsoft Access、ArcSDE—IBM DB2, Informix, Microsoft SQL Server, and Oracle)部分GeoDatabase API函数的实现。

arcgis data interoperability 扩展 -回复

arcgis data interoperability 扩展 -回复

arcgis data interoperability 扩展-回复数据交互性在地理信息系统(Geographic Information System,简称GIS)中扮演着重要的角色,确保不同格式、来源和类型的数据能够互相沟通和交流。

为了满足这种需求,ArcGIS平台开发了数据互操作性的扩展插件,即ArcGIS Data Interoperability Extension(以下简称Data Interoperability)。

本文将一步一步回答有关Data Interoperability的相关问题,帮助读者更好地了解和使用该扩展。

第一步:介绍ArcGIS Data Interoperability ExtensionArcGIS Data Interoperability Extension是ArcGIS平台上的一个额外扩展插件,通过提供一系列工具和功能来支持不同格式和类型之间的数据交互。

这个扩展使得用户可以更容易地导入、导出、转换和转换地理空间数据,无论数据是来自于ArcGIS中的本地数据源,还是来自于外部的数据源,如数据库、文件、网页等。

第二步:Data Interoperability的主要功能和特点Data Interoperability提供一系列强大的工具和功能,以应对各种数据交互方面的需求和挑战。

其中一些主要的功能和特点包括:1. 数据格式支持:Data Interoperability支持多种常见的地理空间数据格式,如Shapefile、GeoJSON、KML等,以及栅格数据格式,如GeoTIFF 和Grid等。

这使得用户可以轻松地导入和导出不同格式的数据,方便数据共享和协作。

2. 数据转换和转换:Data Interoperability通过提供丰富的转换和转换工具,使用户能够在不同的数据格式之间进行无缝转换和转换。

例如,用户可以将Shapefile转换为KML,将CAD文件转换为Geodatabase,或者将栅格数据转换为矢量数据等。

arcgis常用python代码

arcgis常用python代码

arcgis常用python代码ArcGIS是一款常用的地理信息系统软件,通过使用Python代码可以对ArcGIS进行灵活的扩展和自定义。

本文将介绍一些常用的ArcGIS Python代码,以帮助读者更好地使用该软件。

1. 数据导入与导出ArcGIS中的数据可以以多种格式进行导入和导出,使用Python代码可以实现自动化的数据处理。

示例代码:```import arcpy# 导入Shapefile数据arcpy.FeatureClassToFeatureClass_conversion("C:/data/input. shp", "C:/output.gdb", "output")# 导出数据为CSV文件arcpy.TableToTable_conversion("C:/data/input.gdb/input_tabl e", "C:/output", "output.csv")```2. 空间分析与操作ArcGIS提供了丰富的空间分析和操作功能,通过Python代码可以实现空间数据的查询、缓冲区分析、裁剪等操作。

示例代码:```import arcpy# 空间查询arcpy.SelectLayerByAttribute_management("input_layer", "NEW_SELECTION", "population > 1000000")# 缓冲区分析arcpy.Buffer_analysis("input_layer", "output_layer", "1000 Meters")# 裁剪arcpy.Clip_analysis("input_layer", "clip_layer", "output_layer")```3. 地图制图与可视化ArcGIS可以将空间数据制作成各种类型的地图,并进行符号化和标注。

arcgis中vb用法

arcgis中vb用法

arcgis中vb用法ArcGIS是一款功能强大的地理信息系统软件,它可以帮助用户进行空间数据分析和管理。

在ArcGIS中,使用Visual Basic for Applications(VB)语言可以对地图进行自定义操作和功能扩展,下面将对VB在ArcGIS中的基础用法进行详细介绍。

1. VB环境配置在使用VB语言进行ArcGIS开发之前,需要对VB环境进行配置。

具体步骤如下:(1)进入ArcGIS安装目录下的VBA文件夹,找到VBA8文件夹。

(2)在VBA8文件夹中,找到ESRIRegAsm.exe文件,双击运行。

(3)在弹出的命令框中,输入以下命令:ESRIRegAsm.exe /p:"location\filename.tlb"其中,location为VB编写的TLB文件存放的路径;filename为TLB文件名。

(4)配置完成后,在VB界面中,打开“工具”-“引用”,勾选下列三个选项:- ESRI GeoDatabase Object Library- ESRI ArcMapUI Control- ESRI ArcMap Object Library这样就可以在VB中调用ArcGIS相关功能了。

2. VB代码示例(1)在地图中添加图层Private Sub AddLayerToMap()Dim pMxDoc As IMxDocumentSet pMxDoc = ThisDocumentDim pWorkspaceFactory As IWorkspaceFactorySet pWorkspaceFactory = New ShapefileWorkspaceFactoryEnd Sub此代码通过WorkspaceFactory打开指定目录下的Shapefile文件,再通过FeatureWorkspace打开Cities图层,并将该图层添加到当前地图中。

(2)地图缩放Dim pLayer As ILayerSet pLayer = yer(0)pMxDoc.ActiveView.Extent = pExtentpMxDoc.ActiveView.Refresh此代码通过获取第一个图层的范围,并将其作为ActiveView的范围来实现地图缩放。

ArcGIS Engine中自定义工具

ArcGIS Engine中自定义工具

ArcGIS Engine中创建自定义工具ArcEngine除了其内置120多种常用工具外,我们还可以根据我们的需要定义自己的工具,大概过程是创建一个类,使其继承BaseCommand或BaseTool,重写其构造函数和鼠标时间等。

最好生成可以复用的dll。

这种自定义工具的最大的优点是极大的提高了代码的可重用性,如上生成的dll动态链接库可以在任意程序中引用以实现该工具的功能。

此外工具的外观和鼠标样式也是可以修改的。

以下为具体过程。

和例子有点不一样,附带原理注释。

1. 从新建项目对话框创建一个新的Visual C# “类库”项目。

2. 将项目命名为“Commands”,并选择保存位置存贮之。

3. 单击项目菜单并选择“添加引用(R)…”。

4. 在添加引用对话框中,复选“ESRI.ArcGIS.Carto”,“ESRI.ArcGIS.Display”,“ESRI.ArcGIS.Geometry”,“ESRI.ArcGIS.System”,“ESRI.ArcGIS.SystemUI”,“ESRI.ArcGIS..Utility”和“ESRI.ArcGIS.ControlCommands”。

5. 在项目中增加一个类,名字叫AddDateTool。

6. 点击项目菜单并选择添加现有项,浏览样例源码目录并找到date.bmp文件将其加入到你的项目。

7. 在解决方案资源管理器中点击date.bmp在属性窗口显示其属性。

改变生成操作属性为嵌入的资源。

这张位图将被用来作为命令按钮的外观。

8. 改变AddDateTool的命名空间的名称为CSharpDotNETCommands。

namespace CSharpDotNETCommands{……注:要在Visual Basi .NET中改变命名空间的名称,则在解决方案资源管理器的项目上点击右键并选择属性,在项目属性页中选择常规并改变根命名空间后,按确定。

9. 在AddDateTool类代码窗口的顶部增加以下引用。

arcgis data interoperability 扩展 -回复

arcgis data interoperability 扩展 -回复

arcgis data interoperability 扩展-回复ArcGIS Data Interoperability扩展是Esri公司提供的一种强大工具,用于解决地理信息系统(GIS)领域中数据交互操作的挑战。

这个扩展可以帮助用户轻松地将不同格式、不同平台、不同版本的地理空间数据进行互操作,实现数据的无缝集成和共享。

本文将一步一步地回答有关ArcGIS Data Interoperability扩展的问题。

第一步:介绍ArcGIS Data Interoperability扩展(100-200字)ArcGIS Data Interoperability扩展是Esri公司基于ArcGIS平台开发的一个功能强大的工具。

它提供了一系列的数据转换、数据整合和数据共享功能,帮助用户解决各种不同格式、不同平台和不同版本的地理空间数据交互操作的问题。

该扩展支持包括矢量数据、栅格数据、数据库、CAD数据等多种数据格式和平台,为用户提供了一个高效、灵活的工具,使得数据在不同GIS系统中的传输、转换和共享成为可能。

第二步:ArcGIS Data Interoperability扩展的主要功能(400-500字)ArcGIS Data Interoperability扩展具有多个主要功能,使得它成为GIS 领域中数据交互操作的首选工具。

1. 数据转换和转码:ArcGIS Data Interoperability扩展支持多种数据格式之间的转换。

它可以将CAD数据转换为GIS数据,矢量数据转换为栅格数据等。

同时,它还支持多种数据编码标准,可以将数据从一个编码标准转换为另一个,确保数据在不同系统中的正确解释和应用。

2. 数据整合和集成:ArcGIS Data Interoperability扩展可以将各种格式和平台上的数据整合到一个统一的环境中。

它可以将多个数据源中的数据集成为一个整体,在这个整体中实现数据的统一管理、查询和分析。

ARCGIS命令大全

ARCGIS命令大全

ARCGIS命令大全关于arc的命令比较多,初学者会感觉比较麻烦,现列出arc命令、arcedit命令、arcplot命令清单。

一、ARC命令1、PC-ARC/INFO 的配置和测试CGITEST 测试PC ARC/INFO 显示器CON-CGI 配置PC ARC/INFO 显示器CON-DIG 配置PC ARC/INFO 数字化仪DIGTEST 测试PC ARC/INFO 数字化仪DUALMODE 指定双屏幕2、获取帮助COMMANDS 列出PC ARC/INFO 各种命令HELP 列出PC ARC/INFO 命令的帮助3、图层层(COVERAGE)的产生与编辑ADS 产生和输入一个图层,是进行ARC/INFO 常用的一种数字化模块CREATE 产生一个空间的图层CREATELABELS 给没有LAB 点的图层产生LAB 点DELETETIC 从一个图层中删除已选择的TIC 点GENERATE 从键盘和文件中增加图层要素4、图层和文件转换EXPORT 将图层、数据库文件、文本文件、绘图文件或者复合图转换为ARC/INFO 交换文件IMPORT 将ARC/INFO 交换文件转换为图层、数据库文件、文本文件、绘图文件或者复合图RECEIVE 从主机上接收图层、数据库文件、文本文件、绘图文件或者复合图文件SEND 将PC ARC/INFO 的图层、数据库文件、文本文件、绘图文件或者复合图文件传至主机5、判断数字化错误EDITPLOT 在PC 屏幕上交互式显示图层,可以任意选择窗口进行打印绘图或生成绘图文件LABELERRORS 列出多边形LAB 点错误PC-Arc/Info 简明命令手册第5页NODEERRORS 列出图层中可能的出现的节点错误6、建立拓扑关系BUILD 建立或更新要素拓扑关系CLEAN 产生多边形拓扑关系7、图层数据操作PROJECT 对一图层或文件进行两种坐标转换TRANSFORM 基于控制点对一图层的坐标进行转换8、增加、更新和操作属性数据ADDITEM 给一个数据库文件增加一个数据项ADDXY 把点或LAB 点X,Y坐标写入PAT 文件COPYINFO 拷贝数据库文件DBASE 在ARC 环境下启动dBASE (在装有dBASE 的情况下)DROPITEM 从数据库文件中删去一个数据项IDEDIT 更新图层中的USER-IDJOINITEM 基于相同的数据合并两个文件KILLINFO 删除数据库文件TABLES 启动TABLES 程序9、图层管理APPEND 合并图层(最多可多达100 个图层)COPYCOV 拷贝图层COUNT 列出图层所有的要素个数DESCRIBE 提供图层的各种信息FREQUENCY 列出图层中要素编码的频率INDEX 产生一个空间索引, 以提高对图层要素查询的效率KILL 删除一个图层LOADANNO 拷贝一个名为[COVER].TXT 的数据库文件LISTCOVS 列出当前工作区的图层NODEPOINT 在含有弧段的节点中产生点图层POINTDISTANCE 计算指定半径范围内一个图层中点要素相对另一图层点要素的距离RENAMCOV 改变图层的名字TOLERANCE 设置或显示所用图层的容差(见“二、ArcEdit命令”中的“6、PC ArcEdit中的容差”)UNGEN 从一个图层生成一个具有X,Y 坐标的ASCII文件UNLOADANNO 从图层数据库文件中拷贝注记10、图层显示EDITPLOT 在PC 屏幕上交互式显示图层,可以任意选择窗口进行打印绘图或生成绘图文件PLOTINFO 列出绘图文件信息ROTPLOT 从一个已生成的绘图文件按一定的旋转角度产生一个新的绘图文件11、ARC处理器命令CLEAR 清除PC显示器CLS 清除PC显示器COLOR 改变显示屏对话窗线的颜色INFODIRECTORY 显示当前目录的数据库和数据文件ITEMS 列出图层和数据文件的数据项定义LIST 列出图层和数据文件的值POPUP 弹出窗口和显示ASCAII文件QUIT 退出ARC环境DELETE 删除磁盘文件DRAW 显示绘图文件、复合图文件等12、数据转换换(我国用户常用命令令)DEFARC 将AutoCAD的ASCII绘图转换文件(DXF)转换为图层(COVERAGE) IGESARC 将原始图形交换标准文件(IGES)转换为图层ARCDXF 将图层(COVERAGE)转换为DXF文件ARCIGES 将图层转换图形交换标准文件(IGES)13、矢量量-栅格数据相互转换GRIDPOL Y 将一种栅格文件转换成多边形图层LINEGRID 将线状图层转换成栅格文件POINTGRID 将点状图层转换成栅格文件POL YGRID 将多边形图层转换成栅格文件14、空间要素合并IDENTITY 计算两个图层的几何交点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return; } IActiveView activeView = mxDocument.ActiveView; // Get the TOC IContentsView IContentsView = mxDocument.CurrentContentsView; // Get the selected layer System.Object selectedItem = IContentsView.SelectedItem; if (!(selectedItem is ILayer)) {
似,但二者的不同之处也值得注意:一个类可以实现多个接口,但是只能继承自一个抽象类。 归功于 ArcGIS-Visual Studio 集成框架,当使用添加项目模板为 ArcMap Desktop 创建命令
时,会自动实现大部分托管代码。比如,自动创建了一个 IApplication 接口成员变量、构造 函数、重写 OnCreate 和 OnClick 方法等。当然,要完全实现所需功能,仍需进一步完善这些 自动实现的代码。
在上一步点击确定后,弹出 ArcGIS Project Wizard,可以利用该向导添加 ESRI 对象库引 用。因为现在创建的是 ArcGIS Desktop 应用程序,所以只有与 ArcGIS Desktop 相关的程序集
建立自定义命令扩展ArcGIS
才显示于该向导中。添加 ESRI.ArcGIS.ADF.Local,ESRI.ArcGIS.ArcMapUI,ESRI.ArcGIS.Carto, ESRI.ArcGIS.Framework,ESRI.ArcGIS.Geometry,ESRI.ArcGIS.System 和 ESRI.ArcGIS.SystemUI 这 7 个引用。点击 Finish 以创建项目。如下图所示。
除了添加 ESRI 引用之外,还得添加 System.Drawing 引用。在添加引用对话框的.NET 选 项卡下选中 System.Drawing,单击确定。如下图所示。
建立自定义命令扩展ArcGIS
删除 class1 文件 删除项目默认创建的 class1.cs 文件,因为在该项目中不会使用该文件。
ZoomToLayer的定义语句,表示ZoomToLayer是继承自BaseCommand抽象类的。如下所示。
public sealed class ZoomToLayer : BaseCommand
为构造函数添加代码 完善 ZoomToLayer 的构造函数(覆写 BaseCommand 抽象类的构造函数),以实现客户化
添加缩放至图层的功能
除了覆写抽象类的一些方法之外,还必须添加一些自定义的方法,以实现自定义的功能。 添加 ZoomToActiveLayerInTOC 方法如下。
public void ZoomToActiveLayerInTOC(IMxDocument mxDocument) {
if (mxDocument == null) {
定制所需功能与效果。 在 ZoomToLayer.cs 文件中,找到默认添加的构造函数,可以发现其所有属性都是空字符
串,这些值是该命令嵌入 ArcGIS 时呈现给使用者的信息,在此修改它们为合适的值。如下 代码所示。
建立自定义命令扩展ArcGIS
public ZoomToLayer() {
// // TODO: Define values for the public properties // base.m_category = "Hans_GIS"; //localizable text base.m_caption = "缩放至图层"; //localizable text base.m_message = "缩放至内容目录窗口中活动图层的范围"; //localizable text base.m_toolTip = "缩放至图层"; //localizable text base.m_name = "Hans_GIS_ZoomToLayer"; //unique id, non-localizable (e.g. "MyCategory_ArcMapCommand")
开启 VS2010,以 Visual C# >> ArcGIS >>Extending ArcObjects 下的 Class Library (ArcMap) 为模板创建一个新类库项目,将该项目命名为 CmdZoomToLayer,选择合适的存储位置,单 击确定。如下图所示。
添加引用
为该项目添加所需的 ESRI 对象库引用以及 System.Drawing 引用。 ESRI 提供的 ESRI.ArcGIS.ADF.Local 程序集包含了 ESRI.ArcGIS.ADF.BaseClasses 命名空间, 可以继承该程序集所提供的一些抽象类来创建一个自定义命令/工具。该程序集还包含了 ESRI.ArcGIS.ADF.CATIDs 命名空间,其中的一些类可用于注册组件至合适的 ESRI 组件类别。
建立自定义命令扩展ArcGIS
建立自定义命令扩展 ArcGIS
关于本文
华中师范大学城市与环境科学学院 韩锁
本文演示如何创建一个简单的命令,实现缩放至所选图层范围的功能。该命令继承自 ESRI 公司的 ADF 里的 BaseCommand 类。以下是详细实现步骤。
注:本文演示环境 VS2020 & C# & ArcGIS 10.0 创建一个类库
在 ArcMap 中使用该命令
启动 ArcMap,打开一个地图文档。单击自定义 >> 自定义模式。在打开的自定义对话 框中选择命令面板,在类别栏目下选中 Hans_GIS,即可看到缩放至图层命令显示于命令栏 目下。如图所示。
建立自定义命令扩展ArcGIS
可以看到显示于该界面下的命令的类别与标题是与构造函数中的信息是一致的。如果在 该步骤找不到所定制的类别与命令,那么在 Visual Studio 2010 中打开项目属性,确保选中生 成面板中的为 COM 互操作注册,然后再次编译项目。
try {
// // TODO: change bitmap name if necessary // string bitmapResourceName = GetType().Name + ".png"; base.m_bitmap = new Bitmap(GetType(), bitmapResourceName); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message, "无效的图标"); } }
在弹出的 ArcGIS New Item Wizard Options 对话框中选择 Desktop or ArcMap Command, 单击 OK。如下图所示。
建立自定义命令扩展ArcGIS
更换默认图标 默认的,项目中已经添加了一张位图用作该命令的图标,可以是用图像编辑器对位图进
行编辑。本示例中,删除原位图,再手工添加一张新位图以用作该命令的图标。 删除原位图 ZoomToLayer.bmp 文件。 在解决方案资源管理器中,右键单击项目,选择添加 >> 现有项,在添加现有项对话框
暴露 ZoomToLayer 类为 COM
ArcGIS 是一套基于 COM 的应用程序,我们现如今在.NET 平台下编辑的类必须暴露为 COM 才能为 ArcGIS 正确识别并使用。基于 BaseCommand 模板建立.NET 程序集时,这个工 作已经由模板自动完成了。感兴趣的话请参考#region COM Registration Function(s)代码片段。
添加 GetMxDocumentFromArcMap 方法如下。
public IMxDocument GetMxDocumentFromArcMap(IApplication application) {
if (application == null) {
return null; } IDocument document = application.Document; IMxDocument mxDocument = (IMxDocument)(document); // Explicit Cast return mxDocument; }
在 ArcMap 中单击命令时,会激发其 OnClick 事件,要想实现缩放至图层功能,还得在 OnClick 方法中调用前面添加的两个方法。如下所示。
public overrideห้องสมุดไป่ตู้void OnClick() {
// TODO: Add ZoomToLayer.OnClick implementation IMxDocument mxDocument =GetMxDocumentFromArcMap(m_application); ZoomToActiveLayerInTOC(mxDocument); }
单击缩放至图层命令并拖放至 ArcMap 的任一工具栏,然后关闭自定义对话框。返回到 ArcMap,在内容目录窗口中单击一个图层,然后单击刚添加的缩放至图层命令,地图就被 缩放至该图层的范围。如下所示。
总结 本文详细讲述了如何使用 ArcGIS 集成模板建立一个命令来扩展 ArcGIS 的功能。(完)
中,导航至存储有合适的图标文件的文件夹,选中合适的图标,单击添加,将其复制到项目 目录下。更改其名称前缀为 ZoomToLayer,并在属性窗口中将其生成操作属性更改为嵌入的 资源。如下图所示。
继承 BaseCommand 抽象类 抽象类是不能被实例化的类,抽象类可包含不被实现的抽象方法。抽象类与接口较为类
编译项目
保存对项目所做的所有更改,单击生成 >> 生成解决方案。可以在项目文件夹的子目录 下查看到生成结果。在 Bin\Debug 目录下可以看到有一个动态链接库文件(DLL)、另外两个文 件(PDB & TLB)是由程序集注册工具生成的。
相关文档
最新文档