好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

arcobjects的体系结构分析报告.ppt

182页
  • 卖家[上传人]:F****n
  • 文档编号:97063581
  • 上传时间:2019-09-01
  • 文档格式:PPT
  • 文档大小:1.85MB
  • / 182 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 本资料来源,,,第3章 ArcObjects的体系结构分析,ArcObjects简称AO,是ESRI公司的ArcGIS家族中 应用程序ArcMap、ArcCatalog和ArcScene的开发平台,是 基于Microsoft COM技术所构建的一系列COM组件集,开 人员可以在AO组件对象的基础上开发出强大的、灵活的 应用系统,以适应用户的各种需求ArcGIS把GIS的基本功能都封装在AO的组件对象库中,这些库文件定义了一些接口,包括组件对象、方法、事件、枚举等,开发者可以通过接口实现对对象的操作机制 例如,ArcMap和ArcCatalog是ArcGIS开发者利用高级语言调用AO的接口来实现AO基本功能的应用程序 AO为开发者提供的是一组可编程的对象,包括可视的用户化控件开发人员在开发时采用VB、VC、Delphi、.Net或类似的高级开发语言,引用组件对象进行编程,创建动态链接库、ActiveX控件(OCX)或可执行文件(EXE),从而开发出符合用户要求的界面及相关功能的软件系统 AO是基于微软组件对象模型技术(COM)而建立起来的通过使用COM开发语言编写一些COM组件,就可以对AO进行扩展。

      用户可以像ESRI开发人员做的那样,对AO结构的任何一个部分进行扩展 AO是一套独立于平台的软件组件,是利用C++编写的,它为GIS应用开发提供服务AO可以利用Mircrosoft的组件对象模型Com通常被认为是一些简单的定义,用于确定对象如何被实现,如何嵌入内存,这些对象与其它对象如何通讯 ArcGIS系统是在ArcObjects软件组件基础上建立和扩展的 ArcObjects包括一系列的可编程组件,从细粒度的对象 (比如geometry对象)到粗粒度的对象(如与ArcMap文档进行交互的map对象),ArcObjects为开发者提供了大量的全面的GIS功能 作为一个开发者,可以编程拓展ArcGIS Desktop应用程序,或者使用ArcGIS Engine创建自定义的应用程序,以及使用ArcGIS Server开发企业级的GIS应用程序所有的ArcGIS之间都具有通用性,当用户开发了某种功能后(比如桌面拓展),只需要经过一些小的修改,这些代码就可以在其他ArcGIS产品中重复使用了,可以充分利用代码重用来建立一个模块化的架构图2.1 AO(ArcObjects)体系结构图,ArcGIS系统是利用ArcObjects软件组件进行建立和扩展的。

      在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的结构和数据模型;(5)建立Web服务和应用ArcGIS 9为ArcGIS Engine,ArcGIS Desktop,ArcGIS Sever提供了一种共同的基于ArcObjects的开发过程,提供了一种模块化的、可伸缩的、跨平台的结构所谓AO,一般都是指ArcGIS Desktop版本的组件开发集,即需要安装ArcGIS桌面版软件后才能安装这些组件开发集,它是所有版本中组件最全的版本,如果需要对ArcGIS产品及其开发有个详尽的了解,学习AO是最恰当的 AO版本包括了所有的类库,其中包括ArcMap、ArcMapUI、ArcCatalog、ArcCatalogUI等组件库,这些组件库必须在安装了桌面版软件后才能使用。

      由于使用AO开发的程序必须安装桌面版软件,这使得它的开发成本大大增加从产品策略上考虑,ESRI将AO中的某些组件集单独封装出来,起名为AE,使用AE开发的软件需要在一个RUNTIME下运行,而不需要安装ArcGIS软件 AE是AO的一个子集 AO版本的控件只有MapControl和PageLayoutControl两个,而AE的控件就丰富得多ArcGIS 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,如ArcCatalog,ArcMap,ArcScene,ArcGlobe等进行定制 可以利用定制的命令(commands)、工具(tools)、菜单(menus)、模块(modules)等对ArcGIS的应用框架进行定制。

      使用这种方式相对来说非常简单,用户只需要输入很少的代码就可以实现大部分的功能用户也可以进行进一步的高级开发,通过利用基于COM的开发语言开发编译成DLL,创建一些新的控件或组件,从而将这些新的组件加入到ArcGIS的定制环境中 ArcGIS Desktop也提供了很多控件例如,用户可以使用支持ActiveX控件或者是.Net控件的高级开发语言利用MapControl控件和PageLayout控件来进行二次开发 使用这些控件可以开发出一些有更多用户定制的接口的功能 如果需要利用这些控件进行开发,最好是利用ArcGIS Engine开发工具来进行开发,该开发工具提供了更多的控件和更多的ArcObjects功能ArcGIS Engine开发工具是一套基于组件的软件开发产品,可以用来构建和配置传统的GIS和制图应用 ArcGIS Engine开发工具包不是一套终端用户产品,而是一个应用开发的软件包 由ArcObjects组件构成的ArcGIS Engine软件开发包是平台无关的,并且可以用多种开发语言来进行开发,如.NET,Java,C++,VC,VB等 利用ArcGIS Engine可以建立只有简单的图形处理功能的GIS应用,也可以建立复杂的、动态的适用于不同操作系统(Windows,UNIX,Linux)的用户使用的GIS应用。

      ArcGIS Server提供了一个构建企业级GIS应用和服务的平台,可以进行集中管理,支持多用户,包括一些高级的GIS功能,并且可以使用工业标准进行开发和发布 ArcGIS Server提供了开发GIS Web应用和服务的框架 ArcGIS Server包括两个主要的部分,即一个GIS Server服务和一个应用开发框架(Application Developer Framework,ADF)ArcGIS以ArcObjects为基础,提供了三套应用,即ArcGIS Desktop,ArcGIS Engine,ArcGIS Server 因此,相应地提供了对应这三套应用的开发方式,即: (1)定制ArcGIS Desktop应用; (2)独立的GIS应用程序开发; (3)服务器模式开发具体又包括以下三种方式 (1)定制ArcGIS Desktop应用 如果用户希望修改ArcMap、ArcCatalog的界面以适合自己的需要,可以通过多种方式对界面进行定制 例如:1)将工具条放在一个指定的位置;2)以最适合于自己的方式对命令按钮进行分组;3)添加一些新的宏(macros)或者是装载一些定制的命令;4)定制模板,利用模块可以方便地处理同样的地理数据。

      在这种方式下,用户可以不用写任何一行代码就可以完成大量的定制任务ArcMap和ArcCatalog都提供了VBA(Visual Basic for Application),VBA不是一个独立的程序,它嵌入在ArcMap和ArcCatalog应用中,它提供了一种集成编程环境,即VBE(Visual Basic Editor) 在该环境下,用户可以编写VB宏程序,并且可以立即在ArcMap和ArcCatalog环境中进行调试 一个宏(macro)可以集成一些甚至是所有的VB功能在VBA环境下可以使用所有的ESRI对象库 在VBA环境下创建定制的命令非常简单 例如,用户可以创建一个新的按钮、工具、组合框、编辑框等,然后为这些控件的事件添加代码,然后将这些具有新的功能的控件拖到工具条上即可用户也可以使用其他的开发环境来定制命令和工具,可以使用任何支持Microsoft组件对象模型(COM)的编程语言来开发定制组件创建的定制命令或工具通常是以ActiveX DLL的形式存放的,可以很容易地将这些定制命令和工具添加到ArcMap和ArcCatalog中 如果用户希望利用编程语言而不是VBA创建这些定制命令和工具时,必须将ArcObjects的功能打包成COM DLL,EXE,OCX或者是.NET,这就需要创建一个VB或VB .Net工程,引用ArcObjects的类型库,需要编写代码,然后编译成二进制文件。

      这些定制的组件包括两种类型:1)应用层次的组件,例如定制的按钮,工具条、窗口等;2)Geodatabse层次的组件,例如定制的特征类有许多GIS应用的用户不是GIS专业人员,不具备利用复杂的GIS工具解决具体问题的能力 为了为GIS的非专业人员提供解决方法,开发者需要能够建立与领域相关的、容易使用的应用程序,将复杂的GIS系统与用户友好的开发结合在一起,如果所有的都从头开始,那么工作量将非常大 解决此问题的方法就是提供一个基于组件的开发框架,允许用户快速建立GIS应用程序,而ArcGIS Engine就提供了这样一个框架ArcGIS Engine包括一个软件开发包和一个可以重复发布的运行许可,ArcGIS Engine软件开发包不是一个终端用户,而是一个标准的开发工具 ArcGIS Engine是由ArcObjects组件库构成的,是平台无关的,可以被多种编程接口调用,如.NET、Java、COM、C++等 ArcGIS Engine开发工具包提供了多个开发控件,可以帮助用户开发出独立的图形处理和GIS应用ArcGIS Engine提供了以下控件: (1)MapControl; (2)PageLayout Control; (3) Reader Control; (4)Globe Control; (5)Scene Control; (6)Table of Contents Control (TOC控件); (7) Toolbar Control等, 这些控件可以作为ActiveX控件,或者是.NET Windows控件和JavaBeans控件。

      ArcGIS Engine,,GIS设计与开发 3,ArcGIS提供了一种提供Web应用和Web服务的开发框架,这就是ArcGIS Server,它也是建立在ArcObjects组件库基础上的 该框架提供了Web应用和Web服务的开发和配置 ArcGIS Server既包含了具有丰富的GIS功能的GIS Server软件,也为网络稳定性和负载平衡提供了GIS的服务对象管理ArcGIS Server应用程序的开发框架包括.NET和J2EE,利用该框架可以快速建立和配置GIS应用和服务ArcGIS Server提供了以下.Net控件和JavaBeans控件: (1)Map;(2)Page layout; (3)Overview Map;(4)Table of Cont。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.