《牟乃夏ArcEngine教程:第1章ArcGISEngine编程基》由会员分享,可在线阅读,更多相关《牟乃夏ArcEngine教程:第1章ArcGISEngine编程基(22页珍藏版)》请在金锄头文库上搜索。
1、牟乃夏 ArcGIS Engine地理信息系统开发教程 第1章 ArcGIS Engine编程基础 目录 1.1 ArcGIS Engine概述 1.2 ArcGIS Engine开发资源 1.3 Esri开发方式简介 1.4 对象模型图(OMD图) 1.5 ArcGIS Engine的安装 1.1 ArcGIS Engine概述 ArcGIS Engine是基于COM的集合,可以被任何支持COM的编 程语言所调用,如:C#、Visual Basic .NET、Java、Visual Basic、 C/C+等语言。使用它不仅可以编写功能复杂的独立应用程序, 也可以将GIS的相关功能嵌入到现有的
2、软件,如Word、Excel中, 真正实现GIS功能的灵活配置。 在产品架构上,ArcGIS Engine由两部分组成。一是构建GIS应 用软件所用的开发工具包(ArcGIS Engine Developer Kit);二是可 分发的、为应用程序提供运行基础的运行时(ArcGIS Engine Runtime)。 1.1 ArcGIS Engine概述 ArcGIS Engine在ArcGIS产品线中的地位 1.1 ArcGIS Engine概述 ArcGIS Engine开发工具包的组成 1.1 ArcGIS Engine概述 ArcGIS Engine运行时 ArcGIS Engine运行
3、时是能够保证基于ArcGIS Engine开发的软件正常运行的 ArcObjects组件产品,是运行由ArcGIS Engine开发的应用程序的基础软件 环境。 ArcGIS Engine运行时是可伸缩的,这种可伸缩性体现在ArcGIS Engine运行 时的级别上。在安装ArcGIS Engine运行时时,需根据应用程序的需要, 选择不同级别的授权文件。 1.1 ArcGIS Engine概述 ArcGIS Engine功能 使用ArcObjects SDK可以实现的功能主要有: 地图基本操作 信息查询功能 专题图的制作 数据编辑 网络分析 空间统计分析 三维分析 1.1 ArcGIS En
4、gine概述 ArcGIS Engine与ArcObjects 联系: ArcGIS Engine包括ArcObjects的核心功能,是对ArcObjects中大部分接口、类库进 行封装所构成的。ArcGIS Engine中组件的接口、方法、属性与ArcObjects是相同 的。 区别: 1)开发环境 在ArcGIS Engine产品未出现时,要基于ArcObjects进行开发,必须安装 ArcGIS Desktop。而ArcGIS Engine是独立的COM组件,在应用其进行开发时,不需 要安装ArcGIS Desktop,只需安装ArcGIS Engine Developer Kit即可。
5、 2)功能强弱 ArcObjects包含了很多ArcGIS Desktop中的UI功能,而部分UI功能在ArcGIS Engine中是没有的。如在ArcCatalog中向地图文档中添加数据所用到的IGxDialog接 口,用于打印设置的IPrintDialog接口等。 1.1 ArcGIS Engine概述 ArcGIS Engine类库 ArcGIS Engine不同的组件库分别封装不同的GIS功能。在.NET开发环境中 ,不同的GIS功能分别被定义在不同的命名空间内。 ArcGIS Engine提供的类库主要可以分为Version类库、界面和控件类库、 可视化显示类库、数据访问类库、数据分
6、析类库等几大部分。 1.1 ArcGIS Engine概述 ArcGIS Engine控件 ArcGIS Engine控件是一组可视化 的开发组件,每个ArcGIS Engine 控件都是一个COM组件。这些控 件包括MapControl、 PageLayoutControl、TOCControl 、ToolBarControl、GlobeControl 和SceneControl等。 1.2 ArcGIS Engine开发资源 1.帮助文档 【开始】【所有程序】【ArcGIS 】【Developer Help】【 ArcObjects Help for .NET】,即可启动 ArcObjec
7、ts的帮助系统。 2.自带示例 在安装完ArcObjects SDK后,在 “.Program FilesArcGISDeveloperKit10.0Samples ”文件夹下,包含有许多自带的代码 示例工程,这些都是开发人员学习 ArcGIS Engine开发很好的资源。 3.在线网站 cobjects-net/conceptualhelp/ 4.网上资源 Esri中国社区:http:/bbs.Esrichina - GIS空间站: ArcGIS论坛: 这个网站 1.3 Esri开发方式简介 Esri提供了多种方式用于扩充其平台软件及开发新的GIS应用软件 ,如提供内置的开发语言,提供开发组
8、件库等。 Esri提供的开发方式从时间轨迹看,主要有AML语言开发方式, Avenue语言开发方式,MapObjects组件开发方式,VBA开发方式 和ArcObjects组件开发方式等。 1.3 Esri开发方式简介 ArcObjects开发方式 ArcObjects是ArcGIS的功能核心,是 其桌面系统的开发基础,是一种集 成的面向对象的地理数据模型软件 组件库,提供了ArcGIS的全部功能。 ArcObjects包括构建ArcGIS产品 ArcView、ArcEditor、ArcInfo和ArcGIS Server等的所有核心组件。 ArcObjects同时也提供了COM、.NET 、
9、C+和Java的应用编程接口(API) ,这些编程接口不仅包括一系列高 层次的组件,还包括了详细的文档 说明。 ArcObjects与其他组件的关系图 1.4 对象模型图(OMD图) ArcGIS Engine提供了大量的对 象,这些对象之间存在着各种 各样的关系,如:继承、组 合、关联等。OMD图(Object Model Diagram,对象模型图 )是以UML(Unified Modeling Language,统一建模语言)为 基础,用来表现对象之间关系 的类图。 UML模型图示例 ArcGIS Engine包含三种类类型的类类,即: AbstractClass类类、CoClass类类
10、和Class类类,他 们们在UML图图中采用不同的填充样样式表示。 1.4 对象模型图(OMD图) 1. AbstractClass类 AbstractClass类,即抽象类,该类不能被实例化,也就是说不能 用new关键字去生成一个该类的对象,例如Geometry类。根据面 向对象思想的概念,不同的类可以继承自同一个抽象类,但内部 对同一个方法的实现可能是不一样的。 2.CoClass类 CoClass类,即可创建类。该类可以通过new关键字直接实例化对 象,它的实例对象不依赖其他对象的存在而存在,其生存周期也 不由其它的对象管理。如QueryFilter是一个组件类,可以用new关 键字来创
11、建一个对象。 1.4 对象模型图(OMD图) 3. Class类 Class类,即可实例化类。该类不能直接使用new关键字创建对 象,但是可以借助其它对象类来创建该类的实例,如 Workspace类可以通过WorkspaceFactory类的OpenFromFile方法 来创建。 1.4 对象模型图(OMD图) 类的关系 1)继承关系:继承是面向对象编程的重要特点之一,在OMD图 中用空心三角箭头表示继承关系。抽象类不能直接创建类对象, 只能通过派生子类的方法来实现自己,类之间的继承可看作类功 能的扩展,即子类在继承父类属性和方法的基础上,还可增加自 己特有的属性和方法。 1.4 对象模型图(
12、OMD图) 2)组合关系 组合关系指其中一个类对象是另外一个类对象的组成部分,由组 成对象控制被组成对象的整个生命周期,在OMD图中用实心菱形 表示。 Layer是Map的一部分,当Map消失的时时候,Layer也 将不复存在。在ArcGIS Engine中,地图图文档由多个地 图组图组 成,工具条控制对对象由多个工具项组项组 成,这这些 均是组组合关系。 1.4 对象模型图(OMD图) 3)关联关系 关联关系是指可从一个类的对象访问到另一个类的对象,它是一 种松散的关系,在OMD图中用实线表示。关联关系是有方向的, 若只存在一个方向,则为单向关联;若存在两个方向,则为双向 关联。 1.4 对
13、象模型图(OMD图) 4)依赖关系 依赖关系表示一个对象具有产生另外一个对象的方法,在OMD图 中用虚线箭头表示。 在ArcGIS Engine中,WorkspaceFactory有三个方法(Create、Open 和OpenFromFile)来创建或打开一个Workspace。Workspace依赖 于WorkspaceFactory。 1.4 对象模型图(OMD图) 接口 对于接口来说,ArcObjects的类都 实现了一个或多个接口,这些接 口分为两种类型,一种是入接口 (Inbound Interface),另一种是 出接口(Outbound Interface), 分别用空心圆和实心圆来表示。 其中入接口封装了若干属性和方 法,出接口封装的主要是事件, 即对象支持哪些事件的触发,所 以出接口又称为回调接口。 入接口和出接口 1.4 对象模型图(OMD图) 查看OMD图 一种方法是通过ArcGIS Engine的开发帮助来查看OMD图中的各种对象信 息及其与其它组件之间的关系。 另一种方法是通过阅读Esri提供的OMD图的PDF文件,存放在ArcGIS Engine安装目录下的“DeveloperKit10.0Diagrams”文件夹下。