第3章_AO(ArcObjects)的体系结构分析

上传人:飞*** 文档编号:51256725 上传时间:2018-08-13 格式:PPT 页数:182 大小:2.08MB
返回 下载 相关 举报
第3章_AO(ArcObjects)的体系结构分析_第1页
第1页 / 共182页
第3章_AO(ArcObjects)的体系结构分析_第2页
第2页 / 共182页
第3章_AO(ArcObjects)的体系结构分析_第3页
第3页 / 共182页
第3章_AO(ArcObjects)的体系结构分析_第4页
第4页 / 共182页
第3章_AO(ArcObjects)的体系结构分析_第5页
第5页 / 共182页
点击查看更多>>
资源描述

《第3章_AO(ArcObjects)的体系结构分析》由会员分享,可在线阅读,更多相关《第3章_AO(ArcObjects)的体系结构分析(182页珍藏版)》请在金锄头文库上搜索。

1、GIS设计与开发 2第3章 ArcObjects的体系结构分析 ArcObjects简称AO,是ESRI公司的ArcGIS家族中应用程序ArcMap、ArcCatalog和ArcScene的开发平台,是基于Microsoft COM技术所构建的一系列COM组件集,开人员可以在AO组件对象的基础上开发出强大的、灵活的应用系统,以适应用户的各种需求。 3.1 ArcObjects概述GIS设计与开发 3ArcGIS把GIS的基本功能都封装在AO的组件对象库中 ,这些库文件定义了一些接口,包括组件对象、方法、事 件、枚举等,开发者可以通过接口实现对对象的操作机制 。例如,ArcMap和ArcCata

2、log是ArcGIS开发者利用高级 语言调用AO的接口来实现AO基本功能的应用程序。AO为开发者提供的是一组可编程的对象,包括可视的 用户化控件。3.1 ArcObjects概述GIS设计与开发 3开发人员在开发时采用VB、VC、Delphi、.Net或类似的高级开 发语言,引用组件对象进行编程,创建动态链接库、ActiveX控件 (OCX)或可执行文件(EXE),从而开发出符合用户要求的界面及相关 功能的软件系统。AO是基于微软组件对象模型技术(COM)而建立起来的。通过使 用COM开发语言编写一些COM组件,就可以对AO进行扩展。用户 可以像ESRI开发人员做的那样,对AO结构的任何一个部

3、分进行扩 展。AO是一套独立于平台的软件组件,是利用C+编写的,它为GIS 应用开发提供服务。3.1 ArcObjects概述GIS设计与开发 3AO可以利用Mircrosoft的组件对象模型。Com通常被认为是 一些简单的定义,用于确定对象如何被实现,如何嵌入内存, 这些对象与其它对象如何通讯。ArcGIS系统是在ArcObjects软件组件基础上建立和扩展的。 ArcObjects包括一系列的可编程组件,从细粒度的对象(比如geometry对象)到粗粒度的对象(如与ArcMap文档进行交互 的map对象),ArcObjects为开发者提供了大量的全面的GIS功能 。作为一个开发者,可以编程

4、拓展ArcGIS Desktop应用程序, 或者使用ArcGIS Engine创建自定义的应用程序,以及使用 ArcGIS Server开发企业级的GIS应用程序。3.1 ArcObjects概述GIS设计与开发 3所有的ArcGIS之间都具有通用性,当用户开发了 某种功能后(比如桌面拓展),只需要经过一些小 的修改,这些代码就可以在其他ArcGIS产品中重复 使用了,可以充分利用代码重用来建立一个模块化 的架构。3.1 ArcObjects概述GIS设计与开发 3图2.1 AO(ArcObjects)体系结构图3.2 基于AO的开发模式分析GIS设计与开发 3ArcGIS系统是利用ArcOb

5、jects软件组件进行建立和扩展的。在ArcObjects基础上,开发者可以配置或定制ArcGIS Desktop 应用,如ArcMap、ArcCatalog、ArcToolbox;可以扩展ArcGIS的 结构和数据模型;利用ArcGIS Engine嵌入地图和GIS的其他功能;利用ArcGIS Server建立Web服务和应用。ArcGIS 9提供了一套完整的开发系统,允许用户完成以下工 作:(1)在应用程序中嵌入GIS图形和GIS功能;(2)构建和配置传 统的Desktop应用;(3)定制ArcGIS的应用,如ArcMap, ArcCatalog等。(4)扩展ArcGIS的结构和数据模型;

6、(5)建立Web服 务和应用。ArcGISGIS设计与开发 3ArcGIS 9为ArcGIS Engine,ArcGIS Desktop, ArcGIS Sever提供了一种共同的基于ArcObjects的开发 过程,提供了一种模块化的、可伸缩的、跨平台的结 构。ArcGISGIS设计与开发 3所谓AO,一般都是指ArcGIS Desktop版本的组件开发集, 即需要安装ArcGIS桌面版软件后才能安装这些组件开发集 ,它是所有版本中组件最全的版本,如果需要对ArcGIS产 品及其开发有个详尽的了解,学习AO是最恰当的。AO版本包括了所有的类库,其中包括ArcMap、 ArcMapUI、Arc

7、Catalog、ArcCatalogUI等组件库,这些组 件库必须在安装了桌面版软件后才能使用。 由于使用AO开发的程序必须安装桌面版软件,这使得 它的开发成本大大增加。 AO与AE(ArcGIS Engine)的区别GIS设计与开发 3从产品策略上考虑,ESRI将AO中的某些组件集单 独封装出来,起名为AE,使用AE开发的软件需要在 一个RUNTIME下运行,而不需要安装ArcGIS软件。AE是AO的一个子集。AO版本的控件只有MapControl和 PageLayoutControl两个,而AE的控件就丰富得多。AO与AE(ArcGIS Engine)的区别GIS设计与开发 3(1)Arc

8、GIS DesktopGIS设计与开发 3ArcGIS Desktop系统包含了一套应用,如ArcCatalog, ArcMap,ArcToolbox,并且具有许多扩展模块,如ArcGIS空间 分析模块(ArcGIS Spatial Analyst)、ArcGIS地统计分析模块 (ArcGIS Geostatistical Analyst)以及ArcGIS三维分析模块(ArcGIS 3D Analyst)等。 基于ArcObjects可以对ArcGIS Desktop进行定制。最简单的方式就是通过VBA(Visual Basic Application)的方式 对ArcGIS Desktop,

9、如ArcCatalog,ArcMap,ArcScene, ArcGlobe等进行定制。可以利用定制的命令(commands)、工具(tools)、菜单(menus) 、模块(modules)等对ArcGIS的应用框架进行定制。使用这种方 式相对来说非常简单,用户只需要输入很少的代码就可以实现 大部分的功能。(1)ArcGIS DesktopGIS设计与开发 3用户也可以进行进一步的高级开发,通过利用基于COM的开发语 言开发编译成DLL,创建一些新的控件或组件,从而将这些新的组 件加入到ArcGIS的定制环境中。ArcGIS Desktop也提供了很多控件。例如,用户可以使用支持 Active

10、X控件或者是.Net控件的高级开发语言利用MapControl控件和 PageLayout控件来进行二次开发。使用这些控件可以开发出一些有更多用户定制的接口的功能。如果需要利用这些控件进行开发,最好是利用ArcGIS Engine开 发工具来进行开发,该开发工具提供了更多的控件和更多的 ArcObjects功能。(1)ArcGIS DesktopGIS设计与开发 3ArcGIS Engine开发工具是一套基于组件的软件开发产品,可以 用来构建和配置传统的GIS和制图应用。ArcGIS Engine开发工具包不是一套终端用户产品,而是一个应 用开发的软件包。由ArcObjects组件构成的Arc

11、GIS Engine软件开发包是平台无关的 ,并且可以用多种开发语言来进行开发,如.NET,Java,C+,VC ,VB等。利用ArcGIS Engine可以建立只有简单的图形处理功能的GIS应用 ,也可以建立复杂的、动态的适用于不同操作系统(Windows, UNIX,Linux)的用户使用的GIS应用。(2)ArcGIS EngineGIS设计与开发 3ArcGIS Server提供了一个构建企业级GIS应用和服务的平台,可 以进行集中管理,支持多用户,包括一些高级的GIS功能,并且可 以使用工业标准进行开发和发布。ArcGIS Server提供了开发GIS Web应用和服务的框架。Arc

12、GIS Server包括两个主要的部分,即一个GIS Server服务和一 个应用开发框架(Application Developer Framework,ADF)。(3)ArcGIS ServerGIS设计与开发 3ArcGIS以ArcObjects为基础,提供了三套应用,即ArcGIS Desktop,ArcGIS Engine,ArcGIS Server。因此,相应地提供了对应这三套应用的开发方式,即:(1)定制ArcGIS Desktop应用;(2)独立的GIS应用程序开发;(3)服务器模式开发。基于AO的开发GIS设计与开发 3具体又包括以下三种方式。(1)定制ArcGIS Desk

13、top应用如果用户希望修改ArcMap、ArcCatalog的界面以适合自己的需 要,可以通过多种方式对界面进行定制。例如:1)将工具条放在一个指定的位置;2)以最适合于自己的 方式对命令按钮进行分组;3)添加一些新的宏(macros)或者是装载 一些定制的命令;4)定制模板,利用模块可以方便地处理同样的 地理数据。在这种方式下,用户可以不用写任何一行代码就可以完成大量的 定制任务。1、定制ArcGIS Desktop应用GIS设计与开发 3ArcMap和ArcCatalog都提供了VBA(Visual Basic for Application), VBA不是一个独立的程序,它嵌入在ArcM

14、ap和ArcCatalog应用中, 它提供了一种集成编程环境,即VBE(Visual Basic Editor)。在该环境下,用户可以编写VB宏程序,并且可以立即在ArcMap 和ArcCatalog环境中进行调试。一个宏(macro)可以集成一些甚至是所有的VB功能。在VBA环境 下可以使用所有的ESRI对象库。在VBA环境下创建定制的命令非常简单。例如,用户可以创建一个新的按钮、工具、组合框、编辑框等, 然后为这些控件的事件添加代码,然后将这些具有新的功能的控件 拖到工具条上即可。(2)在ArcGIS应用环境中编写VBA宏GIS设计与开发 3用户也可以使用其他的开发环境来定制命令和工具,可

15、以使用任 何支持Microsoft组件对象模型(COM)的编程语言来开发定制组件。 创建的定制命令或工具通常是以ActiveX DLL的形式存放的,可以 很容易地将这些定制命令和工具添加到ArcMap和ArcCatalog中。如果用户希望利用编程语言而不是VBA创建这些定制命令和工 具时,必须将ArcObjects的功能打包成COM DLL,EXE,OCX或者 是.NET,这就需要创建一个VB或VB .Net工程,引用ArcObjects的 类型库,需要编写代码,然后编译成二进制文件。这些定制的组件包括两种类型:1)应用层次的组件,例如定制 的按钮,工具条、窗口等;2)Geodatabse层次

16、的组件,例如定制的 特征类。(3)创建一些定制组件来扩展ArcGIS Desktop的应用GIS设计与开发 3有许多GIS应用的用户不是GIS专业人员,不具备利用复杂的GIS 工具解决具体问题的能力。为了为GIS的非专业人员提供解决方法,开发者需要能够建立与 领域相关的、容易使用的应用程序,将复杂的GIS系统与用户友好 的开发结合在一起,如果所有的都从头开始,那么工作量将非常大 。解决此问题的方法就是提供一个基于组件的开发框架,允许用户 快速建立GIS应用程序,而ArcGIS Engine就提供了这样一个框架。2、开发独立的GIS应用程序GIS设计与开发 3ArcGIS Engine包括一个软件开发包和一个可以重复发布的运行 许可,ArcGIS Engine软件开发包不是一个终端用户,而是一个标准 的开发工具。ArcGIS Engine是由ArcObjects组件库构成的,是平台无关的,可 以被多种编程接口调用,如.NET、Java、COM、C+等。ArcGIS Engine开

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号