您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 理解对象模型图OMD
第五章理解对象模型图课程预览ArcObject对象模型图(OMD)阅读一个对象模型图类的类型类之间的关系接口符号、属性、方法解释对象模型图,写代码一、ArcObject对象模型图OMDs帮助你写代码显示每个类的接口、属性和方法显示类之间的关系在几个对象模型图超过1500个类超过1600个接口找到ArcObject对象模型图二、对象模型图的标记继承组成创建多重性*关联BirdAbstractNestCoClassChickenCoClassFeatureClassWingClassEggClass*2例如table--createRow对象模型图的标记的几个基本概念:(1)继承关系:人们将具有共同特性的元素抽象成类别,并通过增加其内涵而进一步分类。例如,动物可分为飞鸟和走兽,人可分为男人和女人。(2)创建关系(Instantiation):指某个类中的对象拥有一个方法,可以创建另一类中的对象。(3)关联关系(Association):表示两个类之间存在某种语义上的联系。(3)多重性:表示参与对象数据的上下界限制,即限制对象类与其他对象关联的数目关系。以下是用于多重性关联的符号:1——一个并且只有一个,这种多样性是可选的,如果不标明,则默认为“1”0..1——零个或一个M..N——从M到N(正整数)*或者0..*——从零到任意正整数;1..*——从1到任意正整数。ArcMap/OMD例子MxDocumentMapLayer**FeatureLayerApplication1、概念:可创建的类(组件类):指那些能够直接使用通过开发环境中的对象定义语法来创建对象的类。可创建类可以直接被创建或者实例化。三、三种类(一)可创建的类(组件类)CoClass2、特点可创建的:用New关键字DimpMapAsIMapSetpMap=NewMap实例化:DimpMapAsIMapSetpMap=pMxDocument.FocusMap’获取当前文档的焦点地图OMD符号:三维带阴影的矩形可以使用New关键字实例化的类可实例化类:不能够直接创建新对象,但是这种类的对象能够作为其他对象的属性被创建,或是通过其他类的方法来创建。(二)可实例化类Class1、概念2、特点不可创建的类,不能用New关键字只能由其它对象获得实例DimpNewRowAsIRowSetpNewRow=pTable.CreateRow三维无阴影生成抽象类:不能用以创建新对象,但可以用来指定子类。如Layer是FeatureLayer和RasterLayer的抽象类。(三)抽象类Abstract1、概念2、特点不可创建,不可实例化把一些类共同的属性和方法提取出来,用其它类来继承。二维带阴影的矩形为子类定义通用的接口继承:分为两种(类继承和接口继承)类继承:子类中含有父类所有的接口。Layer、FeatureLayer’QI接口继承:子接口中包含父接口中的所有属性方法。‘NoQI表示方法:ILayer:IUnkown所有COM都有IUnkown接口,每个接口都继承至IUnkown接口。IObjectClass、IFeatureClass用:表示IFeaturelayer:ILayer(帮助)继承接口示例查找LayerCarto•Property–哑铃形状的图标•MethodPropertyGet(read)PropertySet(write)四、属性和方法符号五、开始点预先设置变量Application:Application对象的IApplication接口ThisDocument:MxDocument对象的IDocument接口ArcMap或ArcCatalogOMD的开始点ApplicationThisDocument(一)Application对象每个运行对象的ArcMap程序都是一个Application的对象实例,Application代表了程序本身。在ArcMap中,以Application对象为根本,Application管理ArcMap程序的启动和关闭、加载扩展模块等。Application对象下面的有几个重要的对象:1、DataWindow:它负责管理数据窗口;2、Extention:负责管理所有的DLL扩展模块对象3、AppDisplay:负责管理地理数据的图形显示4、Document:负责管理地理数据和元素对象5、StatusBar:用于改变程序的状态栏外观6、Templates:Application启动后必须使用的文档模板对象。ApplicationAppDisplayTemplatesMxDocumentExtensionStatusBarIApplicationIMxApplicationIAppDisplayIDisplayIScreenDisplayITemplatesIStatusBarIExtensionIDocumentIDocumentEventsIDocumentEventsDispIMxDocument*Application结构图IApplicaiton接口Application类是在FrameWork库中定义的,它是应用程序的一个抽象类。该接口定义了ArcGIS中所有应用程序的一般功能。该接口管理程序的Caption、Document、Template和VBE等ArcMap和ArcCatalog应用程序中都拥有的方法和属性。当直接使用VBA环境开发的时候,它意味着可以直接联系到程序本身的某些属性和特征。IMxDocument接口这是ArcMap程序特有的接口,用于管理SelectionEnvironment、Display、Paper和Print等对象。这些对象和地图的显示和打印输出有关。(二)Document对象只要打开ArcMap程序,就会有一个默认的文档文件(*.mxd)存在。文档文件有多种,如ArcMap中的文档称为MxDocument,ArcCatalog中的为GxDocument。在程序中一次只能有一个文档存在,它在数据存储和显示中扮演了一个关键的角色,并且保存了许多非常重要的对象:一个或多个Map、一个PageLayout、一个TOCView、StyleGallery和DataGraphs等用户可以通过IApplication::Document来获取一个文档对象的指针或者在VBA编程的框架中直接使用ThisDocument这个全局变量。DimpAppAsIApplicationSetpApp=ApplicationDimpDocAsIMxDocumentSetpDoc=pApp.DocumentDimpDocAsIMxDocumentSetpDoc=ThisDocument六、获取属性值返回一个值返回一个接口返回一个值DimstrNameAsStringDimpDocAsIDocumentDimpBarAsIStatusBarstrName=Application.NameMsgBoxstrName返回一个引用SetpDoc=Application.DocumentSetpBar=Application.StatusBarpBar.Message(0)pDoc.Title设置属性PropertyPut:MostArcObjectsproperties属性获得一个值或一个对象的副本不使用Set关键字pLayer.Name=“PortMoresby”‘NoSetKeywordPropertyPutbyReference:SomeArcObjectsproperties属性获得一个对象的引用即需要传入一地址必须使用Set关键字SetpLayer.FeatureClass=pMoresbyData‘MustuseSetIFeatureLayerInterface帮助七、查找接口这些接口也是有效的。但是详细的属性和方法必须在其它地方浏览。(e.g.,ObjectBrowser).该接口被本类使用.所有的属性和放都列表在类图中.继承接口是有效的类继承要查找父类的接口接口继承的属性和方法示例:接口八、虫孔FeatureLayeronMapLayerOMDElementonArcMapOMD虫孔Example:MxDocumentMaplayer•GettheFocusMap(activedataframe)fromMxDocument–MxDocumentmayhaveseveralMaps(*)•GetalayerfromthetheMap–Manytypesoflayers()DimpMxDocAsIMxDocumentSetpMxDoc=ThisDocumentDimpMapAsIMapSetpMap=pMxDoc.FocusMapDimpLayerAsILayerSetpLayer=pMap.Layer(1)'IspLayeraFeatureLayer?IfTypeOfpLayerIsIFeatureLayerThenMsgBoxYes!,it’safeaturelayerEndIfMxDocumentMapFeatureLayerLayer**OthersA
本文标题:理解对象模型图OMD
链接地址:https://www.777doc.com/doc-3080204 .html