理解对象模型图OMD

合集下载

GIS名词解释

GIS名词解释

一、名词解释:事件过程:有一个相关联的对象,当相应的事件发生时运行代码。

子过程:没有相关联的对象,必须被调用才能运行,无返回值函数(FUNCTIONS):没有相关联的对象,必须被调用才能运行,有返回值过程级变量:只在申明变量的过程中可见。

模块级变量:在所申明的模块中有效。

公有级变量:在项目的所有模块中均有效。

类:是一个蓝本或模板,它定义了由其生成的对象所具有的属性和方法。

对象:是由类创建的具体事物。

类库:是包含多和类的单个文件。

COM:组件对象模型,是用来连接软件组件或模块的一个协议,COM类:用接口来组织属性与方法,一个COM类会有很多接口。

接口:接口是定义方法和属性的一个逻辑组查询接口:当对一个类进行实例化时,你只能使用一个接口,但实例化后,你就可查询任何其它的接口。

在同一个对象上使用附加的接口。

多态性:类可以提供具有不同执行的相同接口。

抽象类:是用来组织特定的子类,不可创建和实化成对象,无实际对象。

CoClass :Creatable Class 可创建类,可由NEW关键字实例化的一种类。

枚举:是在一个对象中包含的对象包,有一个简单接口,该接口有2个方法:Next:引用枚举中的下一项;Reset:将指针移回枚举的顶端。

Map:是图层的集合。

要素层:是一种FeatureClass类型的数据集。

FeatureClass:是具有简单要素类型(点、线、多边形)、普通属性集和普通空间参考的数据集。

Workspace:是一个包含数据的文件夹ArcInfo Workspace:一个包含coverage和INFO子目录的目录。

Shapefile Workspace:包含Shapefiles的目录。

Access Workspace:包含表和要素数据集的个人geodatabase.SDE Workspace包含表、要素数据集和层的ArcSDE实例。

Raster Workspace:包含格网和图像。

TIN Workspace:包含TINs要素数据集(FeatureDatasets):是要素类的集合。

AE对象模型图【OMD】阅读指南

AE对象模型图【OMD】阅读指南

对象模型图【OMD】阅读指南2008-03-16 20:36补充几个名词概念:UML:Unified Modeling Language 统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。

UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。

OMD:Object model diagrams 对象模型图表。

首先来看看OMD能帮我们做什么?1.该类支持哪些接口;2.完成任务需要哪些对象;3.如何使用该类的对象;4.是否可以直接实例化类;5.接口有哪些方法和属性;6.是否有其它类也支持该接口;7.对象间的关系下面图示中,便是贯穿本书的对象模型图的钥匙。

这些符号是基于UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。

对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。

Visual Basic,或者其它的开发环境,都会列出所有的类和成员,但不会指明这些类之间的关系。

所以,对象模型图是非常有利于读者对ArcInfo 组件的理解的!本书使用UML 来描述ArcInfo 组件,即ArcObjects,并描述你能够创建的数据模型。

以下详细说明。

1. 类和对象在UML 图中有三种类型的类:抽象类(abstract class)、可创建类(createableclass)与可实例化类(instantiable class)。

抽象类不能用以创建新对象,但可以用来指定子类。

举个例子,“line”(线)是“primaryline”(干线)和“secondary line”(副干线)的抽象类。

可创建类指的是那些你能够直接使用开发环境中的对象定义语法来创建对象。

比如在Visual Basic 中是这样书写:Dim As New <object> 或者CreateObject <object>。

可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的属性被创建或是从其它类的方法中创建。

对象模型描述

对象模型描述

对象模型描述
对象模型是一种用于描述现实世界中的对象及其相互关系的方法。

它通过抽象和建模的方式,将复杂的现实世界问题简化为可管理的概念和关系,以便于程序员理解和实现。

在对象模型中,每个对象都有自己的属性和行为。

属性是对象的特征或状态,而行为是对象能够执行的操作。

通过定义对象的属性和行为,我们可以描述对象在系统中的角色和功能。

对象之间的关系可以分为聚合关系、组合关系和继承关系等。

聚合关系表示对象之间的一种整体与部分的关系,一个对象可以由多个其他对象组成;组合关系表示对象之间的一种包含与被包含的关系,一个对象是另一个对象的一部分;继承关系表示对象之间的一种继承与派生的关系,一个对象可以继承另一个对象的属性和行为。

在对象模型中,我们通过类来描述对象的共同特征和行为。

类是对象的抽象,它定义了对象的属性和行为的集合。

通过创建类的实例,我们可以实例化对象,并使用对象的属性和行为来完成具体的任务。

对象模型的设计需要考虑到系统的需求和约束。

在设计过程中,我们需要确定对象的属性和行为,定义对象之间的关系,以及确定对象的接口和方法等。

通过合理的设计和建模,我们可以实现系统的功能,并提高系统的可维护性和扩展性。

对象模型是一种描述现实世界中对象及其关系的方法。

它通过抽象
和建模的方式,将复杂的问题简化为可管理的概念和关系,以便于程序员理解和实现。

通过对象模型的设计,我们可以实现系统的功能,并提高系统的可维护性和扩展性。

1.2 理解对象模型图(OMD)

1.2  理解对象模型图(OMD)


Method
河南信阳师范学院城市与环境科学学院张兴国
根据网上AOVBA开发教程(esri版权所有)编辑
6-11
Setting properties

Property Put: Most ArcObjects properties
Property
Do
holds a value or a copy of an object
*
Layer
'Is pLayer a FeatureLayer? If TypeOf pLayer Is IFeatureLayer Then MsgBox "Yes!, it’s a feature layer" End If
FeatureLayer Others
根据网上AOVBA开发教程(esri版权所有)编辑
Application ThisDocument
河南信阳师范学院城市与环境科学学院张兴国
根据网上AOVBA开发教程(esri版权所有)编辑
6-10
Property and method symbols

Property
哑铃形状的图标
Property Get (read)
Property Set (write)
河南信阳师范学院城市与环境科学学院张兴国
根据网上AOVBA开发教程(esri版权所有)编辑
6-13
Finding interfaces
棒棒糖类型的图标 () Nhomakorabea继承接口是有效的 该接口被本类使用. 所有的属性和放都列表在类图中.
这些接口也是有效的。但是详细的 属性和方法必须在其它地方浏览。 (e.g., Object Browser).

GIS设计与开发复习资料

GIS设计与开发复习资料
跟踪图层AddEven()。
3.总结:
1)得到记录集的方法:
2)选择集——记录集:soSelection——RS——getGeometry
3)查询结果是记录集:query——RS——getGeometry
4)用户直接画(跟踪图层):checkedGeometry——几何对象
4.空间查询:
概念:从GIS数据库中找出所满足属性约束条件和空间约束条件的地理对象或数据内容。
axSuperLegend1.HasLines =true;//显示连接线
axSuperLegend1.PopupMenu =false;//弹出右键菜单
//连接图例控件和工作空间控件
axSuperLegend1.Connect(axSuperMap1.CtlHandle);
刷新:axSuperLegend1.Refresh();//刷新图例控件
3)基本要素:数学、地图、专题要素
4)基本方法、要求、步骤:
选择相应的图层——表、数据集
选择专题图类型
选择字段名:
列、属性——列出选中图层的属性名——列出所有字段名称
图层:表
字段集合对象、字段集.name
风格化:符号、颜色、填充、形状;
刷新显示(设置专题图对象风格属性):地图、图例控件的联动
风格集对象:soStyle
颜色集对象:soColor
颜色数量:valueCount;随机:MakeRandomset();渐变:MakeGradientColorset()
5)供用户选择:
专题图类型;
图层;
专题变量。
6)方案:
Q1:图层选取:构造界面
Q2:专题图类型:单值:
专题对象:soThemeUnique

ArcEngine二次开发入门介绍

ArcEngine二次开发入门介绍

ArcObjects OMD图表上的虫洞
概念上,这是一个对象模型 事实上, 被分别在几张图表里存放
虫洞表现了图表与图表间的连接关系
虫洞
Element on ArcMap OMD
FeatureLayer on Map Layer OMD
例子: MxDocument > Map > layer
或者通过另一个类的实例化来创建对象。
在OMD中的关系类型主要有: 类型继承(AT和yBpe为in普h通eri类ta对nc象e),C为组件类对象,D为一普通类, 创建(Inst如an下tia面tio代n码): 组成(ComAp=osBit.iwornit)eA:()对象间的主次关系
) 关联(AssAoc=iaCtio.wnrsiteA()
*
Layer
ILayer pLayer = pMap. get_Layer(1);
// Is( pLayer is IFeatureLayer ) {
FeatureLayer
MessageBox.Show( "Yes!, it’s a feature layer" ); }
从当前的文档中取得聚焦的Map (active data frame)
MxDocument 可以包含一些 Maps ( * )
从一个 Map中取得图层对象
MxDocument
图层对象有多种的类型 ( )
*
Map
IMxDocument pMxDoc = LoadMxdDoc (@"c:\Temp\test.mxd"); IMap pMap = pMxDoc.FocusMap;
������ GeoTransformations(地理变换)对象等。

面向对象数据库(第三部分-面向对象数据模型OODM)

面向对象数据库(第三部分-面向对象数据模型OODM)

点的属性与方法
直线的属性与方法
直线段的属性与方法
圆的属性与方法 圆弧的属性与方法 椭圆的属性与方法 椭圆弧的属性与方法
双曲线的属性与方法
双曲线段的属性与方法
抛物线的属性与方法
抛物线段的属性与方法
二次曲线的属性与方法 二次曲线段的属性与方法
2、图元的结构模型
图元的层次分类结构图
从此图中提升出两个超类: ①图元类A:所有图元的共同抽象(理论上有意义,实用意义不大) ②线类C:抽取了直线与曲线的共性
图上一般无操作。图与层有组合关系
虚线为组合 关系,关系 实线为继承
图的类层次结构 图
图元类继承结构
3、类层次结构与面(plane) 在图形中面是由若线(C -Set)组合而成的封闭体,面内可以着色 封闭性约束PLIC,面与线建立组合关系
平面的类层次结构图
4、类层次结构与图层 layer 层上一般无操作。层与点、线、面都有组合关系
层的类层次结构 图
5、类层次结构与图(graph )
因此OODM 具有比传统数据模型更强的功能。 ( 3 )模式约束 是一种逻辑型的方法,可以用类中方法表示模式约束。
2、OODM比传统数据模型更为优越 1 ) 层次结构,具有丰富的语义,能更好地表达客观世界复杂的结构 形式。 2 ) 封装性,弥补了传统数据模型中实体集仅是单一数据集的不足。 3 ) 复杂抽象数据类型 数据类型是一种类,如实型是实数结构与实数操作所组成的类 用构作类的方法构布数据类型,从而可以构作成多种复杂的数 据类型(抽象数据类型ADT,例元组(tuple )、数组(array )、 队列(list )、包(bag)、集合(set )、空间向量等)。 4 )类层次结构可以随时改变结构,从而使OODM 具有不断更新结 构的能力(模式演化schema evaluation 能力)。

地理信息系统开发ArcEngine方法

地理信息系统开发ArcEngine方法

通过ArcEngine构建的GIS软件能够实现以下功能:
1.2 ArcEngine的主要特点
要素符号化,使用主题方法为要素着色(如值映 射图、分类图和点密度图) 制定工具和命令 地图布局和打印 要素数据库的管理和更新 专题图制作(如值映射图、分类图、点密度图) 跟踪动态GPS要素 地理编码功能 3D显示及其应用 数据管理和分析(创建缓冲区;计算差值;查找 形状的交集、联合或反转交集) 交互操作个人地理数据库与主地理数据库 其他拓展技术应用
1.3 ArcEngine与其他组件的区别与联系
ArcEngine和ArcObjects的区别与联系
ArcObjects是ESRI公司用c++和基于微软公司CO M技术编写的独立于平台的一套软件组件库 AO是ArcGIS体系的基础。ArcGIS Desktop,Arc Engine,ArcGIS Server的底层组件都是AO AO不是为终端用户而是专门为开发人员提供的二次开 发软件,通过AO用户主要是方便地拓展GIS应用系统。 AO开发出来的系统不是独立的产品,它必须以ArcGI S Desktop为后台基础。这是AO和ArcEngine最主 要的区别 ArcEngine是基于AO组件库的,即AO构建了ArcEn gine,但ArcEngine是独立于应用程序的AO编程环 境,应用与ArcGIS Desktop应用程序框架之外的Ar cGIS组件
2.1 什么是对象模型图
接口属性和方法 接口(棒棒糖图标

对象模型图罗列了每一个类支持的所有接口, 并以列表的方式表示接口的属性和方法。 但OMD中只描述了常用接口的属性和方法,并 没有详细给出每一个接口的属性和方法。 在COM技术中,每一个接口都是从其他接口继 承而来的,最底层的接口都会在对象模型图上 列出来,在要表示的接口的右边会列出该接口 继承的最底层接口。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
属性获得一个对象的引用即需要传入一地址 必须使用Set关键字
Set pLayer.FeatureClass=pMoresbyData
IFeatureLayer Interface 帮助
‘Must use Set
七、查找接口
继承接口是有效的 该接口被本类使用. 所有的属性和放都列表在类图中.
设置属性
Property Put:Most ArcObjects properties
属性获得一个值或一个对象的副本
不使用Set关键字
=“Port Moresby” ‘No Set Keyword
Property Put by Reference:Some ArcObjects properties
(3)多重性:表示参与对象数据的上下界限制, 即限制对象类与其他对象关联的数目关系。
以下是用于多重性关联的符号:
1——一个并且只有一个,这种多样性是可选 的,如果不标明,则默认为“1”
0..1——零个或一个 M..N——从M到N(正整数) *或者0..*——从零到任意正整数; 1..*——从1到任意正整数。
IMxDocument接口
这是ArcMap程序特有的接口,用于管理 SelectionEnvironment、Display、Paper和 Print等对象。这些对象和地图的显示和打印输 出有关。
(二)Document对象
只要打开ArcMap程序,就会有一个默认的文 档文件(*.mxd)存在。文档文件有多种,如 ArcMap中的文档称为MxDocument, ArcCatalog中的为GxDocument。
Dim pApp As IApplication Set pApp = Application Dim pDoc As IMxDocument Set pDoc = pApp.Document
Dim pDoc As IMxDocument Set pDoc = ThisDocument
六、获取属性值
在程序中一次只能有一个文档存在,它在数 据存储和显示中扮演了一个关键的角色,并且保 存了许多非常重要的对象:一个或多个Map、一 个PageLayout、一个TOCView、StyleGallery和 DataGraphs等
用户可以通过IApplication::Document 来获取一个文档对象的指针或者在VBA编程 的框架中直接使用ThisDocument这个全局变 量。
第五章 理解对象模型图
课程预览
ArcObject对象模型图(OMD)
阅读一个对象模型图
类的类型
类之间的关系
接口符号、属性、方法
解释对象模型图,写代码
一、ArcObject对象模型图
OMDs帮助你写代码
显示每个类的接口、属性和方法 显示类之间的关系 在几个对象模型图超过1500个类 超过1600个接口
四、属性和方法符号
• Property
– 哑铃形状的图标
Property Get (read) Property Set (write)
• Method
五、开始点
预先设置变量
Application:Application对象的IApplication接口 ThisDocument:MxDocument对象的IDocument接口 ArcMap或ArcCatalog OMD的开始点
(1)继承关系:人们将具有共同特性的元素 抽象成类别,并通过增加其内涵而进一步分类。 例如,动物可分为飞鸟和走兽,人可分为男人 和女人。
(2)创建关系(Instantiation):指某个类 中的对象拥有一个方法,可以创建另一类中的 对象。
(3)关联关系(Association):表示两个 类之间存在某种语义上的联系。
Dim Set Dim Set Dim Set pMxDoc As IMxDocument pMxDoc = ThisDocument pMap As IMap pMap = pMxDoc.FocusMap pLayer As ILayer pLayer = yer(1)
*
Map
*
Layer
返回一个值
返回一个接口
返回一个值 Dim strName As String Dim pDoc As IDocument Dim pBar As IStatusBar strName = MsgBox strName 返回一个引用 Set pDoc = Application.Document Set pBar = Application.StatusBar pBar.Message(0) pDoc.Title
ArcMap/OMD例子
MxDocument Application
Map
*
Layer
Байду номын сангаас
*
FeatureLayer
三、三种类
(一)可创建的类(组件类)CoClass
1、概念:
可创建的类(组件类):指那些能够直 接使用通过开发环境中的对象定义语法来创 建对象的类。可创建类可以直接被创建或者 实例化。
生 成
(三)抽象类Abstract
1、概念
抽象类:不能用以创建新对象,但可以用来 指定子类。如Layer是FeatureLayer和 RasterLayer的抽象类。
2、特点 不可创建,不可实例化 把一些类共同的属性和方法 提取出来,用其它类来继承。 二维带阴影的矩形
为子类定义通用的接口
1、概念
可实例化类:不能够直接创建新对象, 但是这种类的对象能够作为其他对象的属 性被创建,或是通过其他类的方法来创建。
2、特点 不可创建的类,不能用New关键字 只能由其它对象获得实例
Dim pNewRow As IRow Set pNewRow=pTable.CreateRow
三维 无阴影
继承:分为两种(类继承和接口继承)
类继承: 子类中含有父类所有的接口。
Layer、 FeatureLayer示例查找Layer Carto ’QI
接口继承:子接口中包含父接口中的所有属性 方法。‘No QI 表示方法:ILayer:IUnkown 所有COM都有IUnkown接口,每个接口都继承 至IUnkown接口。 IObjectClass 、IFeatureClass 用:表示 IFeaturelayer:ILayer(帮助)继承接口
这些接口也是有效的。但是详细的 属性和方法必须在其它地方浏览。 (e.g., Object Browser).
类继承要查找父类的接口 接口继承的属性和方法 示例:接口
八、虫孔
虫孔
Element on ArcMap OMD
FeatureLayer on Map Layer OMD
Example: MxDocument > Map > layer
2、特点
可创建的:用New关键字
Dim pMap As IMap
Set pMap=New Map
实例化:
Dim pMap As IMap
Set pMap=pMxDocument.FocusMap ’获取当前文档的焦点地图 OMD符号:三维带阴影的矩形
可以使用New关键字实例化的类
(二)可实例化类Class
• Get the FocusMap (active data frame) from MxDocument – MxDocument may have several Maps ( * ) • Get a layer from the the Map MxDocument – Many types of layers ( )
IApplication IMxApplication Application
IAppDisplay IDisplay IScreenDisplay IDocument IDocumentEvents IDocumentEventsDisp IMxDocument
*
AppDisplay IExtension Extension
Application
ThisDocument
(一)Application对象
每个运行对象的ArcMap程序都是一个 Application的对象实例,Application代表了程序 本身。 在ArcMap中,以Application对象为根本, Application管理ArcMap程序的启动和关闭、加 载扩展模块等。
'Is pLayer a FeatureLayer? If TypeOf pLayer Is IFeatureLayer Then MsgBox "Yes!, it’s a feature layer" End If FeatureLayer Others
A
找到ArcObject对象模型图
二、对象模型图的标记
继承
组成 创建 多重性 关联 *
Bird
Abstract
Nest
CoClass
Chicken
* CoClass
Feature
Class
2
Egg
Wing Class 例如table--createRow
Class
对象模型图的标记的几个基本概念:
Application对象下面的有几个重要的对象:
1、Data Window:它负责管理数据窗口; 2、Extention:负责管理所有的DLL扩展模块对象 3、AppDisplay:负责管理地理数据的图形显示 4、Document:负责管理地理数据和元素对象 5、StatusBar:用于改变程序的状态栏外观 6、Templates:Application启动后必须使用的文 档模板对象。
相关文档
最新文档