GeoMedia应用开发手册.doc_第1页
GeoMedia应用开发手册.doc_第2页
GeoMedia应用开发手册.doc_第3页
GeoMedia应用开发手册.doc_第4页
GeoMedia应用开发手册.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GeoMedia应用开发手册第一章 自动化概述 宋关福 译 1998年11月30日 注本文是1998年11月为出版GeoMedia应用开发手册文版翻译的,但由于种种原因该书没有出版。因此本文未经仔细校对,错误之处难免,请各位谅解。介绍 “自动化”(Automation)这一术语将在本文中频繁出现,本章主要介绍与自动化编程相关的术语、分析GeoMedia 自动化模型、介绍如何使用GeoMedia开发应用系统。本文还提供了一些练习和试验,有助于加深对OLE自动化概念的理解。主题第一节、 面向对象程序设计和OLE第二节、 何谓COM?第三节、 OLE的优点第四节、 何为自动化第五节、 操纵对象第六节、 术语第七节、 驱动Excel自动化第八节、 GeoMedia的自动化一、GeoMedia的概念二、GeoMedia 术语三、GeoMedia的自动化模型1、Application2、Document3、MapWindow4、Coordinate Systems5、Legend6、GDO7、Geometry and Styles8、Service和Pipes 四、练习1: 操纵GeoMedia 的自动化模型第九节、 GeoMedia自定义的方法目标小结你能回答下列问题吗?目标本章结束后,您将能够掌握如下内容:* 使用公共编程术语 * 浏览GeoMedia自动化模型 * 描述GeoMedia开发的三种技术示范/演示介绍GeoMedia通过自动化驱动Execl练习浏览GeoMedia自动化模型第一节 面向对象编程和OLE 在使用GeoMedia开发应用系统前,首先需要了解的是“对象”和“自动化”这两个术语。“对象”一词与“面向对象”程序设计密切相关。许多年前诞生的面向对象技术,在今天的软件开发环境中仍然受到相当的重视。面向对象是一种把数据及其操作封装在组件或对象里的软件组织方式。因此,在GeoMedia中,对象就是封装了一定功能的软件组件。“自动化”是软件对象之间的通信处理,这些软件对象是创建应用系统的组成部分。在学习怎样使用自动化之前,首先需要浏览一下当今软件技术框架的发展历史。早期的OLE指对象连接与嵌入(Object Linking and Embedding)。在本文中,OLE还允许创建对象,并建立他们之间的关联。比如,您可以在Word文档中嵌入Excel表单,并能通过双击表单激活Excel。现在的OLE增加了以下技术:组件(或对象)的集成通过二进制通信标准实现语言无关的开发对组件或对象界面的抽象除此之外,OLE还包括三种技术:复合文档、自动化和OLE控件。复合文档是一种可以同时包含本地数据和多个在其它应用程序中创建的对象。另外,OLE还具有就地激活与拖-放功能。OLE自动化可以被看作一个程序向另一个程序提供可编程对象。例如,Excel提供了能在Visual Basic应用程序中操纵的表单和统计图对象;又如,GeoMedia提供了地图显示(MapViews)和管道(Pipes)对象,这些对象可以通过Visual Basic 或Visual C+程序来操纵。OLE控件体现了许多OLE技术,包括COM、可连接的对象、复合文档、属性页、OLE自动化和对象持续性。控件是一种通常情况下可视的软件组件(比如:按钮、列表框、检查框),是为创建应用程序界面提供的砖头。自定义控件是用户为解决某些特定问题而自行开发的控件。显然,这些主题需要更加深入的分析,才能有效的使用它们进行开发。不过,通过这些概念的介绍,您可以了解到 GeoMedia在那些方面适应了当今的软件体系结构。我们主要着眼于OLE系列技术中与自动化相关的部分。第二节 何谓COM尽管本文主要讨论如何自定义GeoMedia,但仍然有必要简要地概括一下组件对象模型(COM),因为它是GeoMedia体系结构的基础。即使您从不需要设计可编程对象,理解这一基础理论也是非常有益的。OLE是建立在COM基础之上的。COM定义并且实现了允许软件组件(包括对象、应用程序和服务)之间实现交互的机制。也就是说,COM定义了软件组件之间的通讯协议。COM还描述了接口管理、状态报告、以及使用系统注册表解决的全球性的唯一识别码。与此同时,COM还定义了应用程序内部的对象之间,以及不同应用程序的对象之间的交互。COM的实现就是接口的实现,COM对象是通过COM接口得以交互的。可以认为接口象生产者和消费者之间的合同,它定义了软件的目标和行为。接口由COM对象的一系列与语义学相关的功能或方法组成。如同不能违背合同一样,接口一旦被定义,就不能改变。作为应用程序开发者,你需要这个合同来防止应用程序所依赖的软件的任何改变。 组件式对象模型是OLE可扩展体系结构的关键所在,它提供了建立OLE其余部分的基础。COM是组件之间进行通信的二进制标准,COM并不依赖于Windows NT。微软和其它公司正在他们的操作系统上实现各自的COM库,这些操作系统除了Windows以外,还包括Unix和Macintosh。如果希望了解更多关于COM的资料,请访问微软开发者网络(MSDN.M)。Kraig Brockschmidt编写的深入OLE 2一书也提供了丰富的信息。第三节 OLE的优点OLE给用户和开发者提供了许多好处。OLE强调以“文档为中心”(Doument-centric)而不是以“应用为中心”(Application-centric)的编程方案。也就是说,数据和数据格式与应用程序无关。用户无需进行繁琐的转换就可以操纵文档。数据同样可以跨文档共享使用。通过提供访问方法而非数据复制,可以更好地维护信息,并能有效简化信息发布的手续。使用OLE对象及其接口,给开发者提供了强大工具来建立灵活、易于维护和升级的应用系统。一个OLE应用程序可以利用在其它OLE应用程序中实现的功能来扩展自身的可用性。作为系统集成者,我们再也不需要自己开发所有需要的功能,可以利用其它的OLE应用程序满足用户的需求。GeoMedia是通过嵌入技术实现这种体系结构的。尽管OLE和COM需要的某些体系结构还没有讨论到,但是我们知道有那么一种通信协议存在于对象、自动化客户与控制器之间。这种协议就是接口。所有的对象都支持这种重要的IUnknown接口。通过这些接口,您可以在运行时刻学习其它应用程序的与对象服务相关的能力。可以在既不影响当前应用程序也不影响与之交互的其它应用程序的情况下增加对对象和接口的支持。记住,这就是COM的“合同”接口一旦定被义了,就不能改变。GeoMedia通过编程持久性来实现这一点。第四节 何为自动化OLE自动化是应用程序赖以提供OLE对象的二进制标准。OLE自动化包括两个要素:控制器和对象。自动化控制器是实现程序同自动化对象通信的脚本语言工具。自动化控制器包括:VC+、Visual Basic、PowerBuilder、Developer 200、Delphi等。自动化对象是支持必要OLE接口的可编程组件。另外,整个程序可能是一个自动化对象。例如:表单应用程序可能提供表格、统计图、单元格或者一组单元格,这些都是不同类型的对象。字处理软件可能提供了应用、文档、段落、句子、书签或者选择集等对象。自动化控制器:用于创建管理自动化对象的程序的脚本语言工具,等同于自动化客户。 当应用程序支持OLE自动化时,它提供的对象可以被任何自动化控制器使用(包括VB、VC等)。当使用脚本语言工具操纵自动化对象时,是通过激活对象的方法,或者调用“设置”(Setting)/“获取”(Getting)属性来实现的。自动化对象:被自动化控制器操纵的可编程软件组件,等同于自动化服务器。自动化客户等于控制器,客户是脚本工具或者内置该工具的应用程序,客户操纵自动化对象。自动化服务器等同于自动化对象,自动化服务器是一种可以被自动化客户操纵的软件组件,它提供了可编程的自动化对象。提供可编程对象使得客户可以通过直接访问对象和服务器的功能来“自动化”地激活特定的处理进程。对自动化对象的支持允许你使用已有的应用程序来使您的工作流程达到最佳效果。您同样可以利用其它强大的应用程序创建非常符合特定需要的应用,大大减少了开发时间和开发难度,并能非常满足您或者单位的需求。通过自动化接口的标准化,该应用可以使用某种通用程序设计语言创建,而不需要与不同产品相关连的多种脚本的编程语言。为使自动化客户有效地访问自动化对象,客户(控制器)必须有服务器对象的信息,必须了解每一个对象内部的属性和方法。为了实现信息交换,服务器必须创建一个类型库(Type Library)来定义每个对象。类型库同时还描述对象的属性,包括每一个属性的数据类型。最后,类型库还描述了对象的方法,包括方法的返回值和方法的参数列表(变量名和参数数据类型)。在GeoMedia中,每一个DLL、OCX和EXE都有一个类型库,类型库文件的扩展名为.tlb。就Visual Basic自动化服务器而言,动态连接库(DLL)本身包含类型信息。GeoMedia对象和相应的类型库见附录。第五节 操纵对象为了更有效地使用自动化服务器编程,首先要了解如何操纵自动化对象。对自动化对象的所有操纵和控制都通过对象的接口进行。对象的接口分为三种,即属性(Property)、方法(Method)和事件(Event)。属性控制对象的外观和性质,如果把对象当作结构的话,那么属性就是成员变量。比如颜色和重量等。方法是与对象有关的操作,在面向对象编程环境里,方法就是对象的行为和动作。事件是对象要响应的信号或者动作。比如点击窗口上的按钮会激活按钮对象的click事件。几乎所有的对象都有属性和方法,但并非所有的对象都有事件。一般而言,控件都有事件。成员对象(member object)是另一个对象的属性。例如:GeoMedia的Application对象提供的Document属性本身也是一个对象。该Document就是Application对象的成员对象。附属对象(Dependent Object)类似于成员对象,但它与容器对象的关系更为紧密。附属对象不能在容器对象之外独立创建。例如:在GeoMedia 的GDO对象中,GField对象就是GTableDef对象的附属对象。创建GField对象必须使用GTableDef的方法,不能独立创建。最后需要介绍的是一种特殊的对象集合(Collection)。集合是管理一组相似对象的自动化对象。一般而言,集合对象与其管理的对象有着相同的名字,只不过集合的名字使用复数形式。例如Windows是Window对象的集合,Queries是Query的集合。集合中的对象可以是同构的也可以是异构的。GeoMedia中的Windows集合中的对象是异构的,因为它同时包含DataViewWindow和MapViewWindow两种类型的对象。Queries集合则是同构的,它只有Query对象。由于经常需要处理集合中的所有对象,因此,理解要操纵的集合的类型非常重要。尽管集合对象可以拥有自己独立的方法和属性,但是它必须有Count属性和Item方法。Count属性表示集合中的对象数目;而Item方法则用于返回指定序号的对象引用。比如:For I = 1 To objCollention.CountObjX = objCollention.Item(I)Next I新的集合标准是以1作为下标的开始(称为1基准),而不是0。但是也有一些集合的下标从0开始(称为0基准)。在GeoMedia里,所有的GDO集合都是0基准的,而GeoMedia集合则是1基准。另外,集合经常具有以下方法:添加值或追加对象。移去索引或删除对象。_NewEnum支持For Each结构的隐藏方法。对象通常具有默认的方法或属性。这种默认机制允许您省略属性和方法名,而且可以暗中获取属性值或激活方法。比如,Item通常是集合对象的缺省方法。下列情形中:objCollection.Item(I)objCollection(I)是相等的声明。在文本控件里,Text 属性是缺省特性,那么,txtControl1.TexttxtControl1在文本控件中获取文本属性值具有等同的效果。Table - 1对象的特性项目说明属性数据成员和特性方法操作对象的过程或函数事件对象能识别/响应的行为成员和附属对象对象或集合的组成元素集合包含一系列相似对象的对象操纵对象的另一个重要的概念是点操作符。点操作符用于访问对象的属性或者调用对象的方法。当对象包含成员对象,您可以使用点操作符访问对象层次中的所有对象。假定Application对象包含一个叫Document的成员对象,而Document对象包含一个叫Name的属性,那么可以使用以下的表达式访问Name属性:Application.Document.Name尽管对于访问层次的深度没有限制,但是,对一定深度的重复访问不仅有碍代码的可读性,而且存在潜在的执行效率问题,因为点操作符需要对自动化服务器发出请求。您应当检查所有使用点操作符的代码行。例如,如果在一个循环中重复地访问一个对象的多个属性,使用With块或者引入临时变量会提高效率。例如:Application.Document.Name = Automation OverviewApplication.Document.Date = 7/12/97Application.Document.Author = John Doe改写成如下两种格式将会更加高效:Set tmpDoc = Application.DocumenttmpDoc.Name = Automation OverviewtmpDoc.Date = 7/12/97tmpDoc.Author = John Doe或:With Application.Document.Name = Automation Overview.Date = 7/12/97.Author = John DoeEnd With第六节 术语一、Dim、New、CreateObject如同其他任何编程语言一样,在每一个自动化客户(控制器)里必须有申明变量的机制。在Visual Basic中使用Dim语句申明变量,同时还使用Dim语句来申明对象变量(Object Variables)。例如:Dim ObjX As Object将建立一个名为ObjX的指针,该指针可以指向任何类型的对象。因为Object不是某种特定的对象类型,而是可以代表任何对象类型的通用术语。由于ObjX只是指针,必须把指向一个对象的指针的值赋给它才能使用。通常可以把另一个对象的成员变量或者属性赋值给它,比如:Dim objDoc As ObjectSet objDoc = Application.Document在可以获取MyApplication类型库引用的地方,都可以使用自动化控制器提供的函数创建一个对象,例如:Set objDoc = CreateObject(MyApplication.Document”)在Visual Basic中,也可以使用New操作按照如下所示的方法创建对象:Dim objDoc As New Document后面两个例子实实在在创建了一个新的对象;在第一个例子中,则只是简单地创建了一个指针,该指针可能指向某个对象的引用。并非所有的对象都是可创建的。也就是说,如果该对象是不可创建的,使用New操作符或者CreateObject函数将会失败。另外,可以使用Dim语句创建指向对象引用的变量,但不能创建对象实例。二、进程内和进程外与自动化服务器通信的方式有两种:进程内通信和进程外通信。进程内服务器通常被编译成动态连接库(DLL),客户端可以是动态连接库或者可执行文件(EXE)。进程外服务器则是EXE文件,客户程序可以是EXE或者DLL。这两种实现方法的最大区别在于:进程内服务器与客户共享相同的地址空间,进程外服务器则拥有单独的地址空间。因此进程内服务器的运行效率远远比进程外服务器高。但是进程外服务器可以同时服务于多个客户程序。理解这两种不同类型服务器的区别和作用,有利于以后学习使用GeoMedia创建自定义命令并编写独立的应用程序。三、UUID、GUID、CLSID、PROGID您可能想知道自动化控制器是如何跟踪一个对象的。所有的接口和自动化对象有一个全球唯一的识别码(GUID: Globally Unique Identifier),GUID是一个128位数值,该数值由程序产生,是基于计算机网卡内的唯一标志码、系统日期和时间计算出来的,因此能保证其全球唯一性。GUID包括接口识别码(IID)和类识别码(CLSID)两种类型。每一个接口都定义了自己的IID。IID用于准确查找对象的接口。一旦获得接口,就可以访问接口中的方法。绝大多数自动化控制器自动地把对象类型名称转换成IID,因此不必直接访问IID。CLSID与每一个自动化对象类型相关联,CLSID用于创建给定类型的对象。CLSID与IID一起用于定义自动化服务器支持的对象(类)。最后,每一个类都有一个程序识别码(ProgID)。ProgID是一个在系统注册表里唯一标定对象的字符串。Windows提供了在ProgID与CLSID之间转换的API函数。下划线(_)和点(.)是ProgID字符串中唯一可用的标点。GeoMedia对象的CLSID大部分以GeoMedia作为前缀,加上类名。ProgID是在自动化控制器中使用的CreateObject函数的参数。例如,GeoMedia.Application、GeoMedia.Connection和GeoMedia.ColorSchemes是ProgID。Access.GDatabase 则是Access GDO 服务器的ProgID。四、接口接口是对象赖以通信的机制,一个对象可以有一个或者多个接口指针。前面提到,接口是一组相关的函数。接口是一种抽象的C+类,其定义存储于类型库。所有的成员函数返回HRESULT,这是用于标志函数成功与否的一种特殊类型的错误代码。所有的自动化对象需要实现三个接口:IUnknown、 IDispatch和一个自动化接口。几个对象可以实现同一个接口。从语义上讲,成员函数执行相同的操作。然而,在语义未改变的情况下,这些函数也需要分别实现。下面的图表提供了对象及其接口关系的直观显示。绝大多数自动化对象都有三个接口,有些是通过继承得到。 2007-3-30 11:33 上传下载附件 (3.4 KB) 第七节 驱动Excel自动化本节介绍GeoMedia之外的一个OLE自动化范例。这些资料强调了自动化是一种标准的编程技术,而不是某个软件的特殊解决方案。现在的许多应用程序都是自动化服务器。同样地,您也可以编写一个程序访问自动化服务器提供的对象,而不需要使用鼠标或者键盘交互地操作该应用程序。对一个系统集成者来说,自动化服务器提供了相当强大的功能。这是实现特定任务的最好工具,而这些工具的接口可以封装在一个很小的最终用户程序中。自动化对象并非Intergraph的发明,Microsoft其他厂商的许多应用程序都是自动化服务器。自动化已经很快地成为扩展应用程序功能以满足特定需要的公用方法。本节通过Excel说明有关自动化的一些概念。尽管Excel和GeoMedia之间没有直接的联系,但是电子数据表是介绍自动化概念的常用范例。对于大多数自动化服务器而言,层次表中的最底层对象是应用程序对象。 2007-3-30 11:33 上传下载附件 (8.02 KB) 上图常用于解释应用程序的自动化模型。该自动化图表显示了对象及其相互之间的层次关系。每一个框代表一个自动化对象。灰色方框代表对象集合及其包含的对象。本例中:Application包含一个成员对象Workbooks, Workbooks是一个对象集合,包含了一系列Workbook对象;Workbook对象包含Worksheets、DialogSheets、Charts和 Modules等成员对象;.Worksheets 包含Worksheet对象;Worksheet对象有一个成员对象Range;Range 包含Areas 对象集合和Border成员对象。在Excel中有其他许多对象,每一个对象可以继续往下分解,直到该对象没有成员对象。可以使用点操作符访问层次表中的对象。如Range对象可以使用:Application.Workbooks(1).Worksheets(1).Range 语句来访问。在自动化图表中,异构对象集合用带虚线边线的灰色方框表示,而不是一般的实线边框。Excel中称这种对象集合为Metacollections。演示2:通过自动化驱动Excel本演示用于阐明自动化的本质。Excel是一个自动化应用程序,因此可以通过编程的方式来与电子数据表格软件交互。通过这种方式,可以减少用户在日常工作中手工操作的步骤。在本演示中,个人工作簿里创建并存储了一个Excel宏,另外还附带一些文本格式的数据(数值采用逗号作为分隔符)。自动化程序使用Visual Basic编写,该程序的输入是数据文件名,程序启动后创建一个新的工作簿(Workbook)并且调入数据,数据被选中,并且宏被执行,该处理的结果是一幅表示每月需要检查的电线杆数量。尽管这个例子本身的功能微不足道,但是它说明了通过自动化驱动应用程序的方式。自动化的最大好处在于通过自动化编程减少了最终用户的手工操作步骤。第八节、 GeoMedia的自动化一、GeoMedia的概念GeoMedia是一个地理信息显示和分析工具,GeoMedia可以集成多个不同格式的数据源到一个地图中,并能进行相当复杂的空间分析与查询。GeoMedia既是作为最终用户产品,也是一个可以创建自定义应用的开发平台。GeoMedia提供了如下分析功能:勿需转换直接显示多种类型的空间数据,GeoMedia使用内置的坐标变换以便不同格式的数据可以组成一个复合的地图。作为最终用户,GeoMedia 自动执行这些处理,您只需要很少有关投影和坐标系统知识;作为一个自定义应用开发者,则要有一定的投影和坐标知识。通过缓冲区、空间-属性联合查询和专题地图等执行空间分析。通过交互式图例控制地图的显示内容和外观,包括扫描的栅格地图。当然,GeoMedia还有其他的许多功能。GeoMedia基于客户/服务器框架,GeoMedia是客户端,数据(或者数据仓库)既可以存储于客户机,也可以存放在远程计算机上。数据仓库和数据库包含空间数据,所有对数据仓库进行的访问都通过一个叫做GDO Server的软件组件进行。尽管GeoMedia仅仅反映单一用户对数据的修改,但是多个GeoMedia客户可以访问同一个数据仓库。GDO Server驻留在客户端系统中,需要的时候可以访问远程数据。二、GeoMedia 术语1、GDOGDO(Geographic Data Objects)是一个OLE扩展,通过它可以以一种可预知的方式访问完全异构的数据源中的空间数据。与GDO一起的还有Intergraph定义的一套自动化客户(如:Visual Basic)可以访问的OLE自动化服务器的规范,Intergraph还参与了Open GIS Consortium (OGC) 定义空间数据访问的国际标准。GDO规范也包括在该标准中。GDO访问数据使用了Microsoft的DAO和RDO技术,这是Microsoft的数据访问与管理的OLE 自动化面向对象标准。这些范式很好地满足了空间数据访问的需要。GIS可以看作是数据库问题加上测量坐标系统、几何学和图形显示等问题的结合。通过GIS特殊接口,GDO 正是用于解决GIS中除了数据库以外的其他额外问题的技术。然而, GDO 并不是负责数据库技术接口的,因为许多数据源并非数据库。它遵循数据库的精确性和有效性范式,但并不要求数据库。正因为如此,GDO 制定了数据访问的方式,并不负责数据库有关的任何数据复制、备份、恢复、安全管理或者多用户访问等技术。2、GRecordsetGRecordset对象包含满足特定规范的所有数据库记录。所有的GRecordset 对象使用记录 (行) 和字段(列)创建。GeoMedia通过GRecordset提供空间数据,并通过它维护这些数据。GRecordset 对象相当于数据库中包含数据的指针(cursor),该指针是数据库查询的结果。GRecordset中关于列的信息通过GFields集合访问。客户程序可以使用标准的方式访问和管理来自不同数据源的信息。以下不做特殊说明,记录集(Recordset)等同于GRecordset。需要注意的是,尽管GRecordset中包含着一系列的记录和字段,但是GRecordset并不是集合对象,而是一个单一对象。如果GRecordset是集合对象,每一行数据将会作为单独的对象访问。事实上,GRecordset的访问类似于数组,可以通过MoveNext和设置Bookmark属性类访问指定序号的数据。GeoMedia中的许多概念,都可以在通用的数据库环境中找到同义词。GDO TermDatabase Other SynonymsGDatabaseDatabaseWarehouse, serverGTableDefTableFeature ClassGFieldColumnAttribute, fieldGRecordsetCursorRecordsetActive row (bookmark)Current rowFeature instance, row3、Legend图例是GeoMedia中相当重要的一部分。Legend是地图窗口的控制中心。与传统的只反映地图外观的图例概念不同,GeoMedia 图例是交互式的,可以动态控制地图。通过图例,可以控制哪些feature 类、查询、专题图、标签和图像在地图窗口中显示,以及他们的显示效果。4、PipePipe是GeoMedia体系中的另一重要概念。Pipe定义了允许软件组件之间通过GRecordset交换数据的协议。GeoMedia 包括多个可以通过GRecordset 对象管理和操纵数据的Pipe。Pipe是GeoMedia封装数据表功能的机制,通过这种方式,GeoMedia的特定软件组件可以重用和共同操纵数据。Pipe接受一个或者多个GRecordset输入,并产生一个或者多个GRecordset输出。GRecordset 通过Pipe输出后,字段和记录数量可能增加,也可能减少。这些输出的GRecordset 可能成为另外一个pipe 的输入,进行进一步的处理。5、坐标系统(Coordinate System)坐标系统是GIS中位置的存储方式。坐标系中的大量数据是与其精度和详细程度相关的。越详细的坐标系统定义将提供越精确的地理位置的描述。GeoMedia 以许多坐标系统中的某一种存储地理数据,这些坐标系统提供了您的研究区域和真实世界位置之间关系的数学基础。GeoMedia 支持两种类型的坐标系统:投影坐标系统(Projected coordinate systems),坐标以X,Y,h方式表达。其中,X通常指向地图平面的东方,Y指向地图平面的北方。h 代表高程。不同的投影坐标系统之间的区别在于其如何在平面地图上表达地球曲面。地理坐标系统(Geographic coordinate systems),坐标以经度(lon)、纬度(lat)和高程(h)表达,其中,经度是从子午线开始计算的球面距离,纬度是从赤道开始计算的球面距离。高程指海拔高度。GeoMedia 通过精确定义的椭球体参数和所处地球上的相对位置等测量数据转换坐标的。其中,椭球体是用于描述地球表面的数学模型。6、Feature ClassFeature class是数据的分类。在GeoMedia中对应于数据服务器中的表。每一个数据实例被分配给一个feature class。例如,一个数据集通常由多个feature classes组成,比如:道路、桥梁、学校和教堂等。7、FeatureFeature是由地图上的几何对象和数据库非地理属性所组成的空间实体。这些几何对象和非地理属性的定义存储于feature class中。一个feature 或其实例相当于feature class 表中的一行。三、GeoMedia的自动化模型GeoMedia 包含许多自动化对象,正是这些大量的自动化对象使GeoMedia 功能非常强大。为了更好地理解这些对象,首先让我们来浏览一下GeoMedia的自动化对象结构图。自动化对象模型中的第一部分是整个应用程序的顶层结构(图?)。请注意各个方框的区别,不同的方框代表着不同对象的性质深色的方框代表集合对象。浅色但边线加粗的方框只在GeoMedia 应用程序中起作用。带些显得深色方框是异构集合,它可以包含多种类型的对象。浅色方框是简单对象。2007-3-30 11:36 上传下载附件 (24.32 KB) 白色方框是简单的异构对象,比如,Legend对象包含着一个Style对象属性,该属性可以是GeoMedia的任何一种Style对象.。浏览自动化对象结构图还需要注意以下规则:在同构集合中,集合名在对象名后加“s”,如果对象名以“y”结尾,把“y”替换为“ies”就是集合名称。例如: Application.Document.Connections 和Application.ActiveWindow.MapView.Legend.LegendEntries。在访问集合中的对象时,需要在集合名后面加上括号,在括号中填入对象序号。比如: Application.Document.Connections(1).ConnectionName。访问异构集合时, skip the next object as you continue through the hierarchy.例如: Application.Document.Windows(1).Mapview.Visible。访问异构对象时,使用真正的对象替代该位置。注意:本结构图列出了对象及其附属对象。在许多情况下,附属对象表现为属性名,例如集合QuerySubFolders是QueryFolder对象的属性名,其实际的对象类型是QueryFolders。本节将简要浏览每一个对象,下一节将提供更多的细节。1、Application从结构图的左上角开始,GeoMedia Application包括以下成员或者附属对象:Windows - Application中所有打开窗口(数据窗口或者地图窗口)的集合。Active Window -获得输入焦点的窗口,这既可能是窗口集合中的DataWindow 也可能是MapWindow。PreferenceSet -允许访问存储在系统注册表中的GeoMedia信息的对象。UnitsOfMeasure -该对象提供对度量单位之间转换服务 (例如:米、英尺)。Category / Command - t GeoMedia 定义的分类、命令以及自定义命令。Menubar / MenuItem - Menubar是控制用户接口和菜单项的菜单条;MenuItem是菜单条中的菜单项。Accelerator -为命令定义的快捷键 (例如:帮助的快捷键为F1)。Toolbar / ToolBarButton Toolbar是控制用户接口的工具条;ToolBarButton 则是Toolbar 上的按钮。DockableControl - GeoMedia 的类似于窗口的ActiveX控件包容器。Document 地理工作空间对象。Document 对象是Application对象中最引人注目的一个,它为GeoMedia提供了所有数据访问和显示的能力。数据存储于应用程序(FRAMME, MGE)或者数据库(Access, Oracle SDO),地图的显示参数、查询、数据转换参数等信息则存储于Geoworkspace(document)中。数据可以被多个document访问,每个document保存各自独立的显示参数。GeoMedia采用单文档界面,不允许多个文档同时打开。因为一个document本身包含多个对象,所以在关闭document之前必须释放所有对象。2、Document与document 对象相联系的下一级对象有:Connections Connection 对象的集合,提供对GDO 服务器和数据文件的访问。Windows 本document 中打开的windows 对象的集合(等同于Application.Windows)。MasterLegend legend 对象的一个特殊实例,GeoMedia 使用它为recordsets设置默认的设置。Legends legend 对象集合。QueryFolder 本对象包含query classifications,每一个query classification包含一个query 集合对象。SelectedObjects 在活动窗口中被选中的对象集合,允许在多个窗口中高亮显示同样的对象。CoordSystemsMgr 提供投影定义和转换功能的对象,同时,该对象为每一个地图窗口提供默认的坐标系统。SpatialFilters 用于限制connection的查询范围的集合对象集合。PropertySet -存储混合的用户自定义数据。ColorSchemes 在单值和范围图例对象中使用的颜色模板。Windows 集合是一个异构集合,它可以包含MapWindow 和 DataWindow两种窗口对象.DataWindow 对象则是DataView自定义控件的一个简单包容器。DataView提供了浏览数据集中数据行所有信息的功能。3、MapWindowMapWindow包含MapView、NorthArrow和ScaleBar三个控件,其中每一个控件为空间数据提供了显示控制的用户接口。NorthArrow 指北针,是一个指示显示地图真正北方位置的OLE控件。ScaleBar 比例尺条,用于显示MapView中地图的比例尺(例如:1”图纸单位= 100英尺大地单位)MapView 地图显示控件。MapView 是矢量和栅格数据的关键。Legend成员对象定义需要显示的数据集及其显示顺序。CoordSystemsMgr成员对象定义了显示数据的投影参数。Legend 管理MapView数据显示的控件LegendEntries 图例条目集合,其中的每一个实体包含一个数据集对象及其相关的显示属性。HighlightedObjects MapView 中的高亮显示的对象集合,用于选择和区别地理要素。MapViewSelectedObjects 在Document中属于MapView 同时也属于 SelectedObjects 集合中的对象。CoordSystemsMgr 为某特定的MapView管理投影定义和投影转换的对象。pdf,caj,kdh格式请用Adobe Reader或者CAJViewer打开阅读有任何问题可以到网站会议室举报或提问。华夏土地网发帖规范使用道具 评分 举报 返回顶部 恢复卡 kkriven 发短消息 加为好友 看IP卡狗仔卡kkriven 当前离线 在线时间2676 小时威望199 点土地券129179 亩活跃度10796 度最后登录2011-5-19注册时间2005-7-15精华18积分43290阅读权限255帖子2155管理员土地小生5楼 发表于 2007-3-30 11:38 |只看该作者 4、Coordinate SystemsCoordSystemsMgr是管理所有与坐标系统有关功能的主要对象。CoordSystem成员对象定义了某一特定GIS 坐标系统的特征。这些特征包括存储精读和范围、以及与投影、图纸参考空间的关系等。2007-3-30 11:38 上传下载附件 (8.01 KB) CoordSystem 定义特定坐标系统的对象。RefSpaceMgr 该对象基于公共的测量数据定义参考空间系列及在参考空间系列的各个成员之间进行坐标转换的法则。UnitFormatSpec 存储单位和格式的信息,该对象解析并格式化距离值和坐标点。GeogSpace 指定或者获取用于在RefSpaceMgr对象中定义地理参考空间的椭球体测量数据等参数。PaperSpace 图纸空间对象,用于控制图纸上的地图比例尺,并调整“投影-图纸”矩阵。该矩阵用于在RefSpaceMgr对象内部进行投影和图纸空间之间的转换。ProjSpace 投影空间对象用于设置和获取在RefSpaceMgr对象内部定义投影参考空间的投影运算法则,同时允许修改投影运算法则参数。AltCoordSystemPaths 包含AltCoordSystemPath 对象的集合,每一个AltCoordSystemPath 对象包含一个从当前到其他CoordSystemsMgr 对象之间转换的列表。LeastSquares -用于执行在两套坐标点之间的基于控制点的注册。DatumTransformation -定义了地平线测量数据转换模型,及其坐标转换参数。5、Legend我们已经知道,legend 对象控制数据的显示,包含一系列图例条目(Legend Entry)。图例条目的顺序决定了数据显示的先后顺序。一个记录集对象 (GRecordset) 与每一个图例对象相连接。另外,与图例条目相连的还有数据的可视化特性。每一个图例条目响应相似的属性和方法。不同类型图例条目之间的区别与不同数据类型的不同显示机制相关。所有的集合数据集都可以显示成RecordLegendEntry。与栅格地图相关联的记录集要求不同的显示技术,因此栅格地图使用RasterLegendEntry显示。2007-3-30 11:38 上传下载附件 (23.37 KB) RecordLegendEntry 使用相关风格显示记录集中所有几何对象的图例条目类型。RasterLegendEntry 从特定的记录集中显示单一图像的图例条目类型。RangeLegendEntry 基于统计分析把记录集划分为段范围的专题地图图例类型。UniqueValueLegendEntry 把记录集按照指定字段进行同值分段制作的专题图的图例。Style 包含显示特性(如颜色、宽度、风格等)的对象。TitleFont, SubtitleFont, HeadingFont 控制图例中文本显示字体的字体对象。Range 表示相关数据的范围的对象,用于确定子图例实例的显示特性。UniqueValue 表示相关数据的值的对象,用于确定子图例实例的显示特性。DisplayedObjects - HighlightedObjects 和MapViewSelectedObjects 的对象类型,包含一系列高亮度选择的元素。RecordsetObject -整个记录集的引用,用于对象选择。RecordObject -单个记录的引用,用于对象选择。GeometryObject -单个记录对应的几何对象的引用,用于对象选择。RasterObject -单个图像对象的引用,用于对象选择。6、GDOGeoMedia中的所有操作都以数据访问为中心,GDO 则是数据访问的控制中心。记录集是用于实现软件组件之间通信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论