为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

GIS开发_01_ArcObjects基础

2014-01-15 11页 pdf 1MB 20阅读

用户头像

is_034893

暂无简介

举报
GIS开发_01_ArcObjects基础 2012/2/13 1 ArcObjects基础 ELEMENTARY ARCOBJECTS GIS开发 第一讲 Email:gis.ecnu@gmail.com 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 ArcGIS软件介绍及ArcObjects概述  1981 年 ESRI 发布...
GIS开发_01_ArcObjects基础
2012/2/13 1 ArcObjects基础 ELEMENTARY ARCOBJECTS GIS开发 第一讲 Email:gis.ecnu@gmail.com 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 ArcGIS软件介绍及ArcObjects概述  1981 年 ESRI 发布了它的第一套商业 GIS 软件—— ARC/INFO 软件(1.0版本)  1999年,自ARC/INFO 8.0开始,更名为ArcGIS 8.0 最新版本为ArcGIS 10 美国环境系统研究所 (Environmental Systems Research Institute Inc,简称ESRI)创建于 1969年,总部位于美国加州的 Redlands ArcGIS ArcObjects  ArcObjects(简称AO)是一套用C++编写的、基于 COM(组件对象模型)规范的组件软件。它不是面 向最终用户,而是面向系统开发人员。  ArcObjects组件包括:  4000多个类。  21000多个属性与方法。  70多个组织好的类库。 2012/2/13 2  ArcGIS Desktop、ArcGIS Engine以及ArcGIS Server等产 品都是基于ArcObjects开发的。 ArcObjects的应用 定制、扩展ArcGIS Desktop产品(VBA语言 +ArcObjects组件直接开发、编程语言+ ArcObjects组 件开发扩展模块)。 开发独立的GIS应用系统(编程语言、 ArcGIS Engine或ArcGIS Server、ArcObjects组件)。 Desktop桌面系统的定制与扩展 独立的桌面GIS应用系统 独立的WebGIS应用系统 如何学习ArcObjects? 掌握面向对象的编程方法 了解组件对象模型(COM) 掌握对象模型图的使用 利用开发资源 2012/2/13 3 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 面向对象的编程方法 我们所观测到现实世界是由不同对象所组成,任何一 个对象都具有属性,能响应外部事件现行为,如一 棵树具有树种、树高、树龄等属性,能响应施肥、火 烧等事件,表现生长、落叶、死亡等行为。 我们对现实世界中的问题处理实际上都是通过对对象 的操作来进行。 面向对象的编程方法 面向对象的编程(Object Oriented Programming,简 称OOP) 面向对象编程把现实世界中的实体抽象成编程语言中 的对象。  具有属性  能表现行为(方法)  能响应事件 汽车 地图 属性 颜色 名称 方法 加速 增加图层 事件 踩刹车 选中要素 对象实例 OOP中的几个重要概念 类和对象(Class and Object) 封装(Encapsulation) 多态(Polymorphism) 继承(Inheritance) 类和对象 具有相同属性、方法和事件的对象可抽象成类( Class)。类定义了由它所产生的对象所具有的一切 属性和方法。 类是一个抽象的概念,对象(Object)则是类的具体 实例。 (来源:http://tech.ddvip.com/2009-01/1231136210104461.html) 2012/2/13 4 封装 将抽象得到的数据和行为(或功能)相结合,形成一 个有机的整体,也就是将数据与操作数据的源代码进 行有机的结合,形成“类”,其中数据和函数都是类 的成员 在程序实现中,隐藏对象的属性和实现细节,仅对外 公开接口,控制在程序中属性的读和修改的访问级别 继承 在某种情况下,一个类会有“子类”。子类可以继承 和使用父类的属性和方法,比原本的类(称为父类) 要更加具体化 例如,“狗”这个类可能会有它的子类“牧羊犬”和 “藏獒”。父类“狗”有一个方法叫做“吠叫”和一 个属性叫做“毛皮颜色”。它的子类(前例中的牧羊 犬和藏獒)会继承这些属性和方法。 多态 也称为多态性,是指由于继承等原因而产生相关的不 同类,其对象对同一消息会做出不同的响应;在程序 中表现为调用同名的方法会产生不同的结果。 例如,“牧羊犬”和“藏獒”都有“吠叫”这一方 法,但是调用“牧羊犬”和“藏獒”的“吠叫()”, 方法时,两种狗的叫声并不相同。 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 组件对象模型(COM)  COM(Component Object Model)是由Microsoft提出 的组件程序之间进行交互的标准。COM不是一种开 发语言。 在COM标准中,一个组件程序也被称为一个模块, 它可以是一个动态连接库(DLL程序),称为进程内 组件;也可以是一个可执行程序(EXE程序),称为 进程外组件。 组件对象模型(COM) 一个组件程序包括一个或多个对象(称为COM对象 ),每个对象可以有多个接口。COM对象以接口的 方式提供服务。 当另外的组件或普通程序(即组件的客户程序)调用 组件的功能时。它首先创建一个COM对象或通过其 它途径获得COM对象,然后通过该对象所实现的 COM接口调用它所提供的服务。 2012/2/13 5 对象1 对象2 COM组件 接口1 接口2 接口3 COM组件、COM对象和COM接口的关系 组件对象模型(COM)  COM对象是建立在二进制可执行代码级的基础上, 因此COM对象是语言无关的,这一特性使得不同编 程语言开发的组件对象可以交互。如AO是由C++编 写的,但可以在VBA中调用。  Microsoft不仅定义了COM规范标准,而且也提供了 具体的实现,在Windows操作平台上,COM技术被 应用于系统的各个层次。 什么是接口? 接口(Interface)是COM规范的一个核心内容,它是 对一个类中的属性和方法进行逻辑分组。 一个类可能有好几个接口,每个接口指向一组不同的 方法和属性。 一个接口也可能被多个类所拥有。接口可以认为一个 对象具有多个身份。 接口名通常以I字母开头。 什么是接口? 例如:大象类可以有两个接口(IElephant和IAnimal ),前一个接口有TuskLength属性和Trumpet方法, 后一个接口有Age、Name属性和Sleep方法。 什么是接口? 利用接口有很多优点,如对一个类进行更新时,只要 增加新的接口,老客户可在不更新代码的情况下继续 使用老的接口,解决了代码演化的问题。 由于只有接口才有属性和方法,所以,基于COM的 编程是通过接口对对象进行交互。 利用接口进行编程的基本方法 利用接口进行编程的基本方法:  声明一个指向某个接口的变量。  对变量进行赋值,使变量指向具有该接口的一个特定对 象。  利用该接口的属性和方法对对象进行操作。 Dim pElephant As IElephant Set pElephant = New Elephant pElephant. Trumpet 2012/2/13 6 接口切换 对一个对象的操作,有时要用到该对象不同接口。在 这种情况下,每个接口都需要定义一个变量,但每个 变量都应指向同个对象。 可以通过切换接口(也称为查询接口, QueryInterface,简写QI)方法实现不同变量指向同 个对象。 接口切换 切换接口方法:  声明第一个变量  第一个变量指向某个对象  声明第二个变量  把第一个变量赋值给第二个变量 Dim A As InterfaceA Set A = New SomeObject Dim B As InterfaceB Set B = A A和B指向同个对象, 但指向不同接口 接口切换 Dim pElephant As IElephant Set pElephant = New Elephant Dim pAnimal As IAnimal Set pAnimal = pElephant pElephant. Trumpet pAnimal. Sleep 接口继承 接口具有继承性。根据COM规范,所有的接口都必 须从IUnknown接口继承过来(多数是直接继承)。 IUnKnown接口有三个方法(AddRef、Release和 QueryInterface),用于控制对象的生命周期和接口 查询。 一个接口除了可以使用它自身的属性与方法外,还可 以使用所继承的接口的属性与方法(不需要使用 QueryInterface)。 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 对象模型图  ArcObjects中有大量的类,对象模型图(Object Model Diagrams,简写OMD)是以UML图的形式显 示每个类支持的接口、每个接口所具有的属性和方法 以及类之间的关系等。 由于不能把所有的ArcObjects类和它们的接口放到一 张图上,因此按照类型分成多个对象模型图。 2012/2/13 7 Layers对象模型图 对象模型图 如安装了ArcGIS的Developer Kit,可以在安装目录( DeveloperKit\Diagrams)下找到PDF格式的对象模型 图。 如没有安装ArcGIS的Developer Kit,可以在ArcGIS Resource Center(网址: http://resources.arcgis.com/) 中下载获得。 对象模型图 对象模型图显示的内容包括:  类的类型  类之间的关系  类的接口  接口的方法与属性  枚举类的值与名称 类的类型 对象模型图中的类有三种类型:Abstract Classes、 Coclasses和Classes。  Abstract Classes为抽象类,不能实例化,只能用来派生其 它类,如动物。  Coclasses(组件类)为可创建的类,可由New关键字实例 化,如鸡。  Classes(规则类)为可派生的类,不能通过New关键字实 例化,但可通过其它对象派生实例化,如鸡的羽毛。 类的类型是相对的,是由类的创建者定义的。 类的类型 在对象模型图中, 抽象类以2维灰 方盒表示 可创建的类用3 维灰方盒表示 可派生的类用3 维白方盒表示。 类之间关系 继承(Inheritance):用带三角形符号的黑色实线 表示,表示父类与子类的关系。 组成(Composition):用带黑色菱形符号的灰色实 线 表示,表示组成关系。组成关系中下一层次 的对象依存于上一层次对象,删除上一层次对象,下 一层次对象将不存在,如鸡和鸡毛的关系。 2012/2/13 8 类之间关系 产生(Creates):表示通过一个类的方法可以产生另 一类的对象。如鞋匠和鞋的关系。用黑色带箭头的虚 线表示 ,箭头指向产生的对象。 关联(Association):用灰色实线表示,表示一个类 的对象拥有另个类的对象,如人和房子的关系。可以 在线上加数字或星形符号表示拥有的数量,如 表示可以是1个到多个。 类之间关系的一个例子 类的接口 对象模型图显示了每个类支持的所有接口。但由于图 幅的限制,只显示主要接口的详细信息。其它接口可 通过对象浏览器(或其它帮助工具)来查找该接口的 详细信息 Map对象的接口 类的接口 接口有两种类型:Inbound接口和Outbound接口。对 象模型图中用空心的圆形符号表示Inbound接口,用 实心的黑色圆形符号表示的Outbound接口。 类的接口 常用的接口是Inbound接口。Outbound接口不包括属 性和方法,只有事件,接口名字中一般都带有 “Events”这个单词,这些事件导致服务器寻找相应 的客户端代码并执行。 在对象模型图中,详细显示的接口在接口名的右边列 出了它所继承的接口名,如ILayer:IUnknown。 2012/2/13 9 接口的属性与方法 对象模型图中用方块表示属性。右边的方块表示可设 置属性(可写),左边的方块表示该属性可读。如属 性的设置通过一个值或一个对象拷贝的赋值来实现, 则用实心方块表示;如属性的设置通过一个对象的引 用实现,则用空心方块表示。 接口的属性与方法 在编程中(VBA),如通过一个值或一个对象拷贝的赋 值来设置属性,则不用Set关键字,如: pLayer.Name = “Shanghai” 如通过一个对象的引用来设置属性,则必须用Set关 键字,如: Set pLayer.Feature = ShanghaiData 接口的属性与方法 对象模型图中,用实心的黑色箭头表示方法。除了方 法名外,还包括该方法涉及的参数及类型、返回值( 或接口)的类型。 枚举类的值与名称 枚举类变量的取值只能在若干选项中选择。AO预定 义了很多枚举类,包括枚举值和名称。对象模型图显 示了每个枚举类的枚举值及相应名称。在使用时,用 值和名称是一样的,但用名称更容易理解。 内容提要  ArcGIS软件介绍及ArcObjects概述 面向对象的编程方法 组件对象模型(COM) 对象模型图 开发资源 开发资源  ArcGIS Developer Help  ESRI Object Browser  ArcGIS Resource Center 2012/2/13 10 开发资源的安装 ArcGIS Developer Help 在代码窗口中,双击选中某个接口,按F1键,将显 示ArcGIS Developer Help对话框,并定位到该接口, 显示该接口的详细信息。另外,帮助对话框里还有很 多开发实例的代码。 显示某个接口的详细信息 开发实例代码 ESRI Object Browser 点击开始->所有程序->ArcGIS->DeveloperTools- >ESRI Object Browser将显示对象浏览器对话框。利 用该对话框我们可以查找我们需要了解的对象、接口 、枚举和结构,并显示详细信息。 ESRI Object Browser 查找方法:  根据组件类名、接口名、属性或方法查找组件类。  根据接口名、属性或方法查找接口。  根据枚举名、成员名、成员值查找枚举。  根据结构名、成员名查找结构。 查找中的匹配条件可以是完全匹配,也可以是包含关 系。如是包含关系,则显示包含输入字符的所有对象 (接口、枚举和结构),选择其中一个将显示该对象 (接口、枚举和结构)的详细信息。 2012/2/13 11 ArcGIS Resource Center 网址: http://resources.arcgis.com/ 主要内容:  在线帮助  产品介绍  行业应用  解决  论坛
/
本文档为【GIS开发_01_ArcObjects基础】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索