ImageVerifierCode 换一换
你正在下载:

arcgisAE.docx

[预览]
格式:DOCX , 页数:16 ,大小:1.27MB ,
资源ID:6337087      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6337087.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(arcgisAE.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

arcgisAE.docx

1、arcgisAE实验3利用ArcEngine 进行二次开发Arcengine的类库下面根据依赖关系的顺序对类库进行讨论。模型图中在每个类库框的右上角显示了其序列号。例如,作为ArcGIS体系结构基础的System类库,其编号为1,而编号为7的GeoDatabase类库依赖于模型图中其前面的6个类库SyStem、SystemUI、Geometry、Display、Server和Output。 System类库 System类库是ArcGIS体系结构中最底层的类库。System类库包含给构成ArcGIS的其他类库提供服务的组件。System类库中定义了大量开发者可以实现的接口。AoInitiali

2、zer对象就是在System类库中定义的,所有的开发者必须使用这个对象来初始化ArcGIS Engine和解除ArcGIS Engine的初始化。开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统。 SystemUI类库 SystemUI类库包含用户界面组件接口定义,这些用户界面组件可以在ArcGIS Engine中进行扩展。包含ICommand、ITool和IToolControl接口。开发者用这些接口来扩展UI组件,ArcGIS Engine开发人员自己的组件将使用这些UI组件。这个类库中包含的对象是一些实用工具对象,开发人员可以通过使用这些对象简化用户界面的

3、开发。开发者不能扩展这个类库,但可以通过实现这个类库中包含的接口来扩展ArcGIS系统。 Geometry类库 Geometry类库处理存储在要素类中的要素几何图形或形状或其他图形元素。大多数用户会遇到的基本几何图形对象为Point、MultiPoint、Polyline和Polygon 。除了这些顶级实体外,就是作为多义线和多边形的组成部分的几何图形,是组成几何图形的子要素。它们是Segement、Path和Ring。Polyline和Polygon由一系相连接的、构成列Path的片段组成.一个片段由两个不同的点,即起始点和结束点,以及一个定义这两点之间弯曲度的元素类型组成。片段的类型有Ci

4、rcularArc、Line、EllipticArc和BezierCurve。所有几何图形对象都可以有与其顶点相关联的Z、M和IDs。所有的基本几何图形对象都支持诸如Buffer,Clip等几何操作。几何子要素不可以由开发者扩展。 GIS中的实体指的是现实世界中的要素;现实世界中要素的位置由一个带有空间参考的几何图形来定义。空间参考对象,包括投影坐标和地理坐标系统,都包括在Geometry类库中。开发者可以通过添加新的空间参考和投影来扩展空间参考系统。 Display类库 Display类库包含用于显示GIS数据的对象。除了负责实际输出图像的主要显示对象外,这个类库还包含表示符号和颜色的对象,

5、它们用来控制在显示上绘制时实体的属性。Display类库还包含在与显示交互时提供给用户可视化反馈的对象。开发者与Display最常用的交互方式就是类似于Map对象或PageLayout对象提供的视图。Display类库的所有部分都能进行扩展;通常扩展的对象包括符号、颜色和显示反馈。 Server类库 Server类库包含允许用户连接并操作ArcGIS Server的对象。开发人员用GISServerConnection对象来访问ArcGIS Server。通过GISServerConnection可以访问ServerObjectsMananger对象。用这个对象,开发人员可以操作ServerC

6、ontext对象,以处理运行于服务器上的ArcObjects。开发人员还可以用GISClient类库与ArcGIS Server进行交互。 Output类库 Output类库用于创建图形输出到诸如打印机和绘图仪等设备及诸如增强型元文件和栅格图像格式(JPG、BMP等)等硬拷贝格式。开发人员用这个类库中的对象及ArcGIS系统的其他部分创建图形输出。通常是Display和Carto类库中的对象。开发者可以为自定义设备和输出格式扩展Output类库。 GeoDatabase类库 Geodatabase类库为地理数据库提供了编程API。地理数据库是建立在标准工业关系型和对象关系数据库技术之上的地理数

7、据仓库。Geodatabase类库中的对象为ArcGIS支持的所有数据源提供了一个统一编程模型。GeoDatabase类库定义了许多由ArcObjects架构中更高级的数据源提供者实现的接口。开发者可以扩展地理数据库,以支持特定类型的数据对象(要素、类等);此外,Geodatabase类库还有用PlugInDataSource对象添加的自定义矢量数据源。地理数据库支持的本地数据类型不能扩展。 GISClient类库 GISClient类库允许开发者使用Web服务;这些Web服务可以由ArcIMS和ArcGIS Server提供。GISClient类库中包含用于连接GIS服务器以使用Web服务的

8、对象。该类库支持ArcIMS的图像和要素服务。GISClient类库提供以无态方式直接或通过Web服务目录操作ArcGIS Server对象的通用编程模型。在ArcGIS Server上运行的ArcObjects组件不能通过GISClient接口来访问。要直接获得访问在服务器上运行的ArcObjects,开发人员应使用Server类库中的功能。 DataSourcesFile类库 DataSourcesFile类库包含用于基于文件数据源的GeoDatabase API实现。这些基于文件的数据源包括shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。开发者不

9、能扩展DtaSourcesFile类库。 DataSourcesGDB类库 DataSourcesGDB类库包含用于数据库数据源的GeoDatabase API实现。这些数据源包括Microsoft Access和ArcSDE支持的关系型数据库管理系统IBM、DB2、Informix、Microsoft SQL Server和Oracle。开发者不能扩展DataSourcesGDB类库。 DataSourcesOleDB类库 DataSourcesOleDB类库包含用于Microsoft OLE DB数据源的GeoDatabase API实现。此类库只能用在Microsoft Windows操

10、作系统上。这些数据源包括支持数据提供者和文本文件工作空间的所有OLE DB。开发者不能扩展DataSourcesOleDB类库。 DataSourcesRaster类库 DataSourcesRaste类库包含用于栅格数据源的GeoDatabase API实现。这些数据源包括ArcSDE支持的关系型数据库管理系统IBM、DB2、Informix、Microsoft SQL Server和Oracle,以及其支持的RDO栅格文件格式。当需要支持新的栅格格式时,开发者不扩展这个类库,而是扩展RDO。开发者不能扩展DataSourcesRaster类库。 GeoDatabaseDistributed

11、类库 GeoDatabaseDistributed类库通过提供地理数据库数据导入和导出工具,可以支持对企业级地理数据库的分布式访问。开发者不能扩展GeoDatabaseDistribute类库。 Carto类库 Carto类库支持地图的创建和显示;这些地图可以在一幅地图或由许多地图及其地图元素组成的页面中包含数据。PageLayout对象是驻留一幅或多幅地图及其底土元素的容器。地图元素包括指北针、图例、比例尺等。Map对象包括地图上所有图层都有的属性空间参考、地图比例尺等,以及操作地图图层的方法。可以将许多不同类型的图层加载到地图中。ArcGIS控件:ArcGIS控件是高级开发组件,首先它们允

12、许开发人员建立和扩展GIS应用程序,其次它们提供了图形用户界面(GUI)。 下列所有ArcGIS控件都可以作为ActiveX控件、.NET Windows控件和Visual JavaBean获得: MapControl类似于“数据(data)视图” PageLayoutControl ToolbarControl TOCControl(内容表控件) SceneControl GlobeControl ReaderControl ArcGIS控件可以通过两种方式建立应用程序:首先,ArcGIS控件可以嵌入到现有的应用程序中以增加制图功能;其次,ArcGIS控件可用于创建新的独立应用程序。在前一种

13、情况中,单个的ArcGIS控件可以嵌入到应用程序中,在后一种情况中,TOCControl和ToolbarControl可以与其他ArcGIS控件结合起来组成应用程序框架的组成部分。 为了使用ArcGIS控件有效地建立应用程序,应该理解所有ArcGIS控件共同的一些主题和概念。 嵌入式组件 每个ArcGIS控件都是一个嵌入式组件,可以拖放到可视化设计环境提供的容器窗体或对话框中。一旦放在容器内,就可以改变ArcGIS控件的大小和位置,以便与其他嵌入式组件,如命令按钮和组合框等一起为应用程序提供用户界面。 属性页 一旦ArcGIS控件嵌入到容器中,通过右键点击该控件并选择弹出式菜单中的“属性”菜单

14、项,就可以在大多数可视化设计环境中访问各个ArcGIS控件的属性页集合。这些属性页提供了选择控件属性和方法的快捷方式,使开发人员只需写很少代码甚至不用写代码就可以建立应用程序。 ArcObjects 每个ArcGIS控件都封装了粗粒度ArcObjects,同时又提供对细粒度ArcObjects的访问,这样简化了开发过程。例如,PageLayoutControl封装了布局(PageLayout)对象。布局(PageLayout)对象至少包含一个MapFrame元素,该MapFrame元素包含一个地图(Map)对象,而地图(Map)对象又可以包含多个栅格、矢量或自定义图层(Layer)对象。每个A

15、rcGIS控件为其封装的ArcObjects上频繁使用的属性和方法提供了快捷方式。例如,MapControl有一个SpatialReference属性,该属性就是地图(Map)对象的SpatialReference属性的一个快捷方式。每个ArcGIS控件还有一些执行公共任务的帮助方法。例如,MapControl有一个AddShapeFile方法。ArcGIS控件一般都是开发应用程序的起始点,不仅因为这些控件提供了用户界面,而且还因为通过它们可以直接进入对象模型。 事件 每个ArcGIS控件都会响应终端用户的键盘和鼠标交互而触发事件。响应发生在控件内的行为会触发一些其他事件。例如,当装载一个地图

16、文档到MapControl时,就会触发OnMapReplaced事件;或者当通过拖放将一个对象在MapControl上拖动时,就会触发OnOleDrop事件。 伙伴控件 ToolbarControl和TOCControl都要与另一个“伙伴控件”协同工作。“伙伴控件”一般是MapControl、PageLayoutControl、ReaderControl、SceneControl或GlobeControl。“伙伴控件”可以在设计时通过控件的属性页设置(在支持属性页功能的开发环境中可以这样设置),或者用SetBuddyControl方法编程设置。 控件命令 ArcGIS Engine提供了一系列

17、命令、工具和菜单与ArcGIS控件协同工作。例如,MapControl和PageLayoutControl有一套地图导航、要素选择和图形元素命令与其协同工作。类似的,SceneControl、GlobeControl和ReaderControl也有一套命令与其协同工作。对于使用单个控件的应用程序,这些命令可以通过编程创建命令的一个新例程并将该控件传递给命令的OnCreate事件而直接操作控件。对于使用ToolbarControl及其“伙伴控件”的应用程序,这些命令可以通过设计阶段设置属性页或通过编程设置,或者如果ToolbarControl处于定制模式可以在运行时由终端用户设置。 开发人员也可

18、以通过创建他们自己的自定义命令、工具和菜单来扩展ArcGIS Engine提供的命令集。HookHelper、GlobeHookHelper和SceneHookHelper对象可用于简化这种开发。要了解有关如何使用HookHelper对象建立自定义命令方面的信息,请参考第六章“开发情景”中的“建立应用程序”情景。 地图制作 ArcGIS Desktop应用程序可用于预制作能被装载到ArcGIS控件中的文档,以便快速生产高质量的地图。例如,可以用ArcMap制作能被装载到MapControl和PageLayoutControl中的地图文档。预先制作文档可以节省大量时间,因为它不必从零开始编程建立

19、地图及其符号体系。一旦文档被装载到ArcGIS控件中,如果随后需要改变其外观,就可以通过对象模型编程访问任何图层、元素和符号。 下表总结了可以被装载到各个ArcGIS控件中的文档类型。 *ArcReaderControl只能用ArcGIS Publisher扩展模块获得。然而,这里 列出来是由于其与ReaderControl的类似性。 *ArcGIS控件上没有可用的属性直接装载图层文件(*.lyr)。但是它们可以间接地通过MapDocument对象装载。 MapControl和PageLayoutControl对应于ArcMap桌面应用程序的“数据”和“布局”视图。MapControl封装了M

20、ap对象,而PageLayoutControl封装了PageLayout对象。用ArcMap创作的地图文档可以装载到MapControl和PageLayoutControl中,以节省开发人员编程创作地图的时间。 地图文档可以在设计时通过MapControl和PageLayoutControl的属性页(在支持属性页功能的开发环境中可以这样做)设置,控件可以被设置为“链接”或“包含”地图文档。若为“链接”控件,则每当“链接”控件被创建时都会读取地图文档并显示该地图文档的最新更新。而如果为“包含”控件,则“包含”控件会将地图文档的内容复制到控件中,但不会显示该地图文档后来所作的任何更新。另外,地图文

21、档页可以使用LoadMxFile方法通过编程装载到控件中。 MapControl和PageLayoutControl不仅可以读取地图文档,它们还可以写入地图文档(*.mxd)。这两个控件都实现了 IMxContents接口,使地图文档(MapDocument)对象可以将MapControl和PageLayoutControl的内容写到一个新的地图文档中。 MapControl上存在诸如TrackRectangle、TrackPolygon、TrackLine和TrackCircle等帮助方法,用于追踪或“橡皮圈住(rubber banding)”显示上的几何图形(Shape)。VisibleR

22、egion属性可用于更改MapControl显示区内的几何图形。PageLayoutControl上存在诸如FindElementByName和LocateFrontElement等帮助方法,以帮助开发人员管理元素,而Printer和PrinterPageCount属性与PrintPageLayout方法则共同完成打印任务。GlobeControl和SceneControl对应于ArcGlobe和ArcScene桌面应用程序的三维视图。GlobeControl封装了GlobeViewer对象,而SceneControl封装了SceneViewer对象。用ArcGlobe和ArcScene应用程

23、序创作的Globe和Scene文档可以分别装载到GlobeControl和SceneControl中,以节省开发人员编程创作这两种地图的时间。 GlobeControl和SceneControl都具有内置的导航功能,允许终端用户移动三维视图和可视化三维数据,而不必使用控件命令或自定义命令。要使用内置的导航工具,必须通过属性页或者编程设置Navigate属性。终端用户可以用鼠标左键对显示进行前后左右的移动,使用鼠标右键放大和缩小显示。 ReaderControl对应于ArcReader桌面应用程序的“数据”和“布局”视图及其内容表(TOC)。ReaderControl还包含ArcReader桌面

24、应用程序使用的内部窗口和工具,如Find窗口和Identify工具等。用ArcMap桌面应用程序创作并用ArcGIS Publisher扩展模块发布的发布地图文件(PMF)如果在发布时设置为允许装载到定制的ArcReader应用程序中,则可以装载到ReaderControl中。 ReaderControl中有一个简单的自包含对象模型,提供ArcReader桌面应用程序的所有功能而不需要访问ArcObjects。这样,用ReaderControl开发应用程序就不需要有任何使用ArcObjects开发程序的经验。但是,如果发布地图文件在发布时设置为不受限制地访问其内容,开发人员就可以访问底层的Ar

25、cObjects,并以与MapControl和PageLayoutControl相似的方式使用ReaderControl进行开发。 但ArcReaderControl并不能通过ArcGIS Engine获得,在这里提出来是因为该控件与ReaderControl很相似;ArcReaderControl也有与ReaderControl相同的简单自包含对象模型。但是,ArcReaderControl不能用作“伙伴控件”以便与TOCControl或ToolbarControl协同工作,而且开发人员也不能访问其底层的ArcObjects。使用ArcReaderControl进行开发需要ArcGIS Pu

26、blisher扩展模块,而且ArcReaderControl可以部署到有ArcReader桌面应用程序的任何机器上。 TOCControl TOCControl要与一个“伙伴控件”协同工作。“伙伴控件”可以是MapControl、PageLayoutControl、ReaderControl、SceneControl或GlobeControl。“伙伴控件”可以在设计时通过TOCControl属性页设置(在支持属性页功能的开发环境中可以这样做)或在驻留TOCControl的容器被显示时用SetBuddyControl方法通过编程设置。TOCControl的每个“伙伴控件”都实现了ITOCBudd

27、y接口。TOCControl用“伙伴控件”来显示其地图、图层和符号体系内容的一个交互树视图并保持其内容与“伙伴控件”同步。例如,如果TOCControl的“伙伴控件”是一个MapControl,而且从该MapControl中删除了一个图层,则该图层也会从TOCControl中删除。同样地,如果终端用户与TOCControl交互并取消了某个图层的Visibility复选框,则该图层在MapControl中不再可见。 ToolbarControl ToolbarControl要与一个“伙伴控件”协同工作。“伙伴控件” 可以是一个MapControl、PageLayoutControl、Reader

28、Control、SceneControl或GlobeControl。“伙伴控件”可以在设计时通过ToolbarControl属性页设置(在支持属性页功能的开发环境中可以这样做)或在驻留ToolbarControl的容器被显示时用SetBuddyControl方法通过编程设置。ToolbarControl可以驻留操作其“伙伴控件”显示的命令、工具和菜单。 ToolbarControl的每个“伙伴控件”都实现了IToolbarBuddy接口。这个接口用于设置“伙伴控件”的CurrentTool属性。例如,设想驻留了一个“页面放大”工具并有一个PageLayoutControl作为其“伙伴控件”的T

29、oolbarControl。当终端用户单击该ToolbarControl上的“页面放大”工具时,该“页面放大”工具就会成为PageLayoutControl的CurrentTool。“页面放大”工具的实现会查询ToolbarControl以访问其“伙伴控件”(PageLayoutControl)并取回该PageLayoutControl。然后该PageLayoutControl提供实现显示终端用户拉动鼠标所画的框并改变布局的范围。 ToolbarControl一般要与一个“伙伴控件”协同工作,并有一个控件命令选择集,以便快速提供功能强大的GIS应用程序。ToolbarControl不仅提供了部

30、分用户界面,而且还提供了部分应用程序框架。ArcGIS Desktop应用程序,如ArcMap、ArcGlobe和ArcScene等具有强大而灵活的框架,包括诸如工具条、命令、菜单、泊靠窗口和状态条等用户界面组件。这种框架使终端用户可以通过改变位置、添加和删除这些用户界面组件来定制应用程序。 许多开发环境提供简单对话框、窗体和多泊靠界面(MDI)应用程序形式的框架。它们也提供普通的用户界面组件,如按钮、状态条和列表框。然而,仍需要为驻留命令的工具条和菜单提供大量的代码,特别是如果这些命令需要由终端用户定制的话。 ToolbarControl及其类库中的对象可以提供类似于ArcGIS Deskt

31、op应用程序框架那样的框架组件。用ToolbarControl建立应用程序时,开发人员可以使用这些框架组件的一部分或全部。 命令 ArcGIS Engine提供了几套使用ArcGIS控件的控件命令,以便执行某种特定动作。开发人员可以通过创建他们自己的执行特定任务的定制命令来扩展这套控件命令。所有的命令对象都实现了ICommand接口,ToolbarControl在适当的时候要使用该接口来调用方法和访问属性。 在命令对象被驻留到ToolbarControl后就会立即调用ICommand:OnCreate方法。这个方法将一个句柄(handle)或“钩子(hook)”传递给该命令操作的应用程序。命令

32、的实现一般都要测试以查看该“钩子(hook)”对象是否被支持(也就是说,命令要测试以查看该“钩子(hook)”是不是该命令可以操作的一个对象)。如果不支持该“钩子(hook)”,命令自动失效。如果支持该“钩子(hook)”,则命令存储该“钩子(hook)”以便以后使用。例如,如果“打开地图文档”命令要操作MapControl或PageLayoutControl,而且它们作为“钩子(hook)”被传递给OnCreate方法,则该命令会存储该“钩子(hook)”以便以后使用。如果ToolbarControl作为钩子(hook)”被传递给OnCreate事件,则命令一般会通过Buddy属性检查与该工具条协同使用的“伙伴控件”的类型。例如,如果驻留在ToolbarControl上的一个命令只能操作ReaderControl,而该ToolbarControl的“伙伴”是一个MapControl,则该命令应自动失效。 HookHelper、GlobeHookHelper和SceneHookHelper可以帮助开发人员创建自定义命令以操作ArcGIS控件和ArcGIS Desktop应用程序。 HookHelper

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1