ArcGIS Engine控件编程.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:52 大小:1.4MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

ArcGIS Engine控件编程.doc

ArcGISEngine控件编程.doc

预览

免费试读已结束,剩余 42 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2使用ArcGISEngine控件编程在ESRI.ArcGIS.Controls命名空间中包含了可用于快速构建GIS独立应用程序的控件,如MapControl、PageLayoutControl、TOCControl和ToolbarControl等。其中MapControl和PageLayoutControl对应ArcMap桌面应用程序的“数据”和“布局”视图。前者封装了Map对象,用于地图数据的显示和分析,后者封装了PageLayout对象,用于地图的修饰和整理,以便生成一幅成品地图。这两个控件均实现了IMxdContents接口,可以读取和写入地图文档(MapDocument)。TOCControl和ToolbarControl控件分别对应ArcMap中的“TableofContents”和各种工具条。这两个控件都需要一个“伙伴控件”协同工作,而伙伴控件则可以是MapControl、PageLayoutControl、SceneControl或GlobeControl。TOCControl用交互树视图的方式来显示伙伴控件的地图、图层和符号体系内容,并保持其内容与伙伴控件同步。而ToolbarControl则可以驻留操作其伙伴控件的命令、工具和菜单。在VisualStudio.NET环境中使用ArcGISEngine开发GIS应用程序,需要使用ESRIinterop程序集(InteropAssemblies),它为ArcGIS控件提供了能够位于.NET窗体上的控件,这些控件当被拖放在窗体上,生成具体的实例对象时,均有带有前缀“ax”。如axMapControl1,axPageLayoutControl1等。本章将详细介绍MapControl、PageLayoutControl、TOCControl和ToolbarControl四个常用控件,并在C#.NET开发平台上,结合GIS软件开发的基本需求进行讲述。2.1MapControl控件MapControl控件对应于ArcMap中的数据视图,它封装了Map对象,并提供了相应的属性、方法、事件,可以实现:(1)地图显示;(2)地图的放大、缩小和漫游;(3)生成点、线、面等图形元素;(4)识别地图上选中的元素,进行属性查询;(5)标注地图元素等。该控件能够实现ArcMap能够完成的绝大部分任务。该控件实现的主要接口包括IMapControlDefault、IMapControl2、IMapControl3、IMapControl4和事件接口IMapControlEvents2、IMxdContents、ITOCBuddyEvents。2.1.1主要接口IMapControlDefault接口IMapControlDefault接口是MapControl的缺省接口,是代表控件最新版本的接口。一般的开发环境自动使用这个接口定义的属性和方法。在C#开发平台上,当用户将该控件拖放到窗体上时,会自动生成一个名为axMapControl1的对象,该对象可以直接使用缺省接口对应的属性和方法。该控件当前最新版本的接口为IMapControl4。定义该接口的变量,并进行实例化的方法如下:IMapControlDefaultpMapcontrol;pMapcontrol=axMapControl1.ObjectasIMapControlDefault;IMapControl2接口该接口是所有与MapControl相关任务的出发点,包括设置控件外观、设置Map对象及控件的显示属性,添加、管理数据层,在控件上绘制图形并返回Geometry等。该接口定义了控制控件外观界面的各种属性,如Apperaance、BorderStyle和BackColor。它定义了AddLayer、AddLayerFromFile、AddshapeFile、CenterAt、ClearLayers、DeleteLayer、LoadMxFile、MoveLayerTo、Pan、ReadMxMaps等添加、移动、删除、清楚图层的方法,TrackLine、TrackPolygon、TrackRectangle和TrackCircle等让程序员可以直接在控件上获得Geometry对象的方法,外还提供了DrawShape和DrawText让程序员可以在控件上绘制图形的方法。IMapControl3接口该接口在继承IMapControl2的基础上,增加了以下属性和方法:1)CustomProperty:设置自定义控件属性;2)DoucumentFilename:返回加入MapControl中地图文档的文件名;3)DocumentMap:返回MapControl最后装入Map的名称;4)K