石油图形平台基础软件的研 精品.doc_第1页
石油图形平台基础软件的研 精品.doc_第2页
石油图形平台基础软件的研 精品.doc_第3页
石油图形平台基础软件的研 精品.doc_第4页
石油图形平台基础软件的研 精品.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

题 目:石油图形平台基础软件的研究与开发第一章 绪论1.1 背景石油行业因其行业的特殊性,及其行业管理的深化和提升,存在着不同于其它行业的特征。石油信息领域的特点是,数据量巨大,数据类型复杂,数据表现形式多样,不同勘探时期,不同勘探阶段,所涉及的图形不尽相同;既使是同一类图形,信息精确度和准确性不相同,其表现形式也不相同,这就要求有各种标准来支持不同数据类型的信息管理解决方案。中国石化每年花费上亿元资金引进国外石油勘探开发应用软件,说明了中国石化石油勘探开发对于应用软件具有迫切、强劲和持续的需求。请登陆:输配电设备网 浏览更多信息同时,侏罗纪软件公司为了配合国内油田数字化建设,也需要开发一套适合于公司目前及未来图形产品和相关项目所需一体化解决方案,为油田用户提供更准确、快捷的信息服务。1.2 研究现状目前,成熟的图形平台种类很多。其中针对GIS平台方面主要包括三类:集成式GIS、模块式GIS和组件式GIS1。集成式GIS指集合各种功能的大型GIS软件包。ESRI公司的ArcInfo,Genasys公司的GenaMap等都是集成式的GIS开发工具。集成式GIS优点是各项功能已形成独立完整系统,缺点是系统复杂、庞大、成本较高,难于与其他应用系统集成。模块式GIS是按功能划分成系统模块,运行于统一的平台上。Intergraph公司的MGE是一个有代表性的模块化GIS系统。模块化GIS具有较强的工程针对性,便于开发和应用。组件式GIS是近年来发展起来的,代表GIS系统的发展潮流,最主要的组件GIS大多采用Microsoft的技术。如InterGraph的GeoMedia,ESRI的MapObject,MapInfo的MapX,中地公司的MapGIS2等。虽然各种图形平台种类繁多,但目前还没有一个是针对石油行业量身定制的图形平台,所以或多或少存在以下缺陷:1) 可扩展性差,一些系统专业开发工具虽然也提供了一些二次开发的接口语言3,但对石油行业复杂的数据类型和表现形式来说,如断层、尖灭、油水连接等,难以实现,缺少灵活性。2) 描述的符号、柱子(也称“道”)等种类不全或样式太简单,远远达不到国内油田的复杂要求。3) 投资大,实施周期长,系统环境要求较高,而且后期的数据维护和系统升级工作量巨大,需要专业技术人员现场实施,普通用户无法进行维护。 1.3 研究目的和意义缺乏一体化软件平台制约了我国石油勘探开发软件的发展和创新。本课题的研究,将以二次开发的类库/控件及开发手册形式提供面向第三方软件公司开发人员使用的基础平台接口,向用户提供了编制各种地质图形的手段及多种地质应用软件的集成方法;同时,公司内部也在基础平台之上构建满足自己业务需求的产品与项目,从而达到提高经济效益的目的。石油图形平台的研究与开发成果的利用,对降低开发费用、缩短开发周期,加强质量控制、加快数据查找、共享数据资源、迅速掌握油田生产经营动态信息、提高决策管理水平,促进油田信息化建设、实现油田资源共享等方面具有较大的现实意义。1.4 本文工作本文从实际项目需求出发,系统地对石油图形平台的需求及应用进行了分析和研究,针对中石油地质编图规范4、录井资料整理规范,国内具有代表性油田的各种图件编绘规范5-10, 重点从软件架构、软件复用、面向对象技术的设计角度研究了图形平台协同性框架的设计。主要工作如下: 1) 通过研究平面图、剖面图、井筒图的组成单元,确定了软件系统中的图形模块部分的类型及组成。 2) 研究分析了实际应用中的各类图形,把图形按逻辑层次划分为图件、图层、图元;按数据类型划分模板数据、内容数据。采用树型结构的组织形式来管理和操作图元。 3) 从软件的可视操作角度,提出 “图件 = 模板 + 数据”的设计思想,使图形和数据分离,成果图可以交流共享。 4) 应用UML、设计模式、面向对象技术进行系统设计。设计了一个支持变化的、期望能获得最大限度复用的图形平台框架。 5) 设计并实现了以平台基础技术部分为核心的图形平台,上层在基础技术部分之上定制系统,各层独立,上层之依赖于下层模块。 6) 石油图形平台的发布与应用。1.5 结构各章内容安排如下: 第一章:绪论 介绍研究背景,本文工作及结构。 第二章:图形平台框架整体分析 对满足石油图形平台框架整体分析。 第三章:图形平台基础部分设计 在框架整体分析的基础上,对图形平台基础技术部分进行设计。 第四章:图形平台基础实现及应用 以框架设计为指导,实现图形平台基础技术部分及其应用。 第五章:结束语 总结已取得的成果,并指出进一步的改进和研究方向。第二章 图形平台框架分析2.1 概念定义下面对分析/设计中涉及到的一些专业概念词语加以说明: 图件(图)管理图层的容器。它通过图层将图元按一定的规则组织在一起,表达某种含义。通过图层的组合(即层集合)、图元组合(叠加)和特殊图元集合,形成图件。就图件本身来看有许多类型,但归纳起来可分为图形和图像两类11。 图层图件的层次12,是用户按照一定的需要或标准把某些相关的物体组合在一起。是管理图元的容器。 一幅完整的图,通常由若干个图层来构成。我们可以把图层想像成是一张一张叠起来的透明胶片,每张透明胶片上都有不同的画面,改变图层的顺序和属性就会改变图的显示效果。每个图层是相对独立的。 引入图层概念,是为了便于编辑和管理图元,或为了达到某些特殊的目的(比如隐藏某一图层)。图形分层有利于资源的复用和共享,提高检索和显示速度,提高图形管理和图形设计的效率。 图元图形系统的基本元素,可进一步细分为基础图元和专业图元。 基础图元由点、线、面、文字等基本形状组成,专业图元由基础图元组合而成,表达一定的专业含义(如柱子、责任表、图例)。 图元类对图元的分类,代表一类图元。 图例对图中的符号、线型、填充外观样式的规定和含义的注释。属性用来描述图元对象的表现样式。 符号可以重复使用的可绘制标识,一般具有稳定性和一定程度的标准性。符号元素符号是由点、线、面、圆(椭圆)等组合而成的,组成符号的点、线、面、圆(椭圆)等我们称之为符号元素。符号帧有些需求可能使符号在不同的状态下有不同的表现,每种表现称之为帧。符号库从用户的角度看是指符号的集合,从程序的角度看符号库是用来管理符号的程序。符号绘制参数指符号的坐标点,大小,单一颜色(有的话),旋转角度等参数。子符号符号里可以包含子符号,子符号的定义、性质完全和符号是相同的,定义子符号的目的是一个符号的不同部份(子符号)可以有不同的表现。线型可以重复使用的曲线表现形式,一般具有稳定性和一定程度的标准性。修饰线型是由修饰组合叠加而成,一般而言,修饰是比较简单的曲线表现形式,修饰的叠加形成复杂的曲线表现,即线型。修饰对用户而言是不能单独使用的,因为它是被包含在线型里的。线型库从用户的角度看是指线型的集合,从程序的角度看线型库是用来管理线形的程序。对比图把两口井同一时代地层(或沉积特征相似)的井段建立连接,并统一命名这就是层段的连接。用于盆地范围内的地层划分与对比研究,其主要目的是建立地层系统,确定生,储,盖组合关系,为寻找地质构造,预测油气勘探的有利地区提供依据。属于剖面图类。油藏剖面图主要反映多井间之间的油、气、水层对应连接的关系图,它比较真实地反映了地下油、气、水层连接的情况。属于剖面图类。连通图 表示注水井和多个油井间的连通关系,它比较真实地反映了采油和注水关系。属于剖面图类。等值线图 在某区域内,由每口井的某一地层的数据值得到的离散点形成等值线图。离散点的形式是这样的:(井x坐标,井y坐标,数据值value)。然后由等值线绘图模块将离散点网格化绘制等值线。属于平面图类。综合柱状图地层综合柱状图反映了在时间上实习区地层和岩石的发育情况,揭示出地壳运动的性质和类型以及演变。它通常需要结合实习区及外围的地质资料,在地层实测剖面的基础上绘制出来的。属于井筒图类。断层地壳运动产生的强大压力或张力,超过了岩层所能承受的“强度”,岩层发生断裂,并沿断裂面有明显的错动、位移,形成断层。尖灭尖灭是指岩层厚度逐渐变薄,以至消失,其中 %_ZUu3M 油(气)层尖灭是指油(气)层变薄直至为零,或因岩性、物性而不含油气可统称为油(气)层尖灭。2.2 需求分析2.2.1 需求归纳图形平台的业务需求,是以整合油田勘探领域的生产、管理和研究的需求为基本出发点,以提供勘探开发业务信息化一揽子解决方案为目标,按照知识-信息-数据(K-I-D)的不同层次,通过专业库、数据中心和项目库的建设,分别解决油田勘探开发数据的存储和管理问题,信息的应用和交换问题,知识的可视化和辅助决策问题。从广义来说,一个完整的图形平台应该具有:图形标准、图件编制、数字制图、图形应用、资源管理五个部分。它们之间相互关系如下:1) 图形标准:标准化是基础工作,更是现代企业核心竞争力所在。通过标准化技术支持,为油田数据库基础建设和信息化应用建设提供统一、规范、通用的底层平台,保证信息系统之间的数据兼容性,消除信息孤岛,从而实现油田数据资产的价值最大化。它为数字成图和图件编制提供标准。包括图式、符号库、线型库。R12:为模板制作提供专业制图标准,形式为:标准规范、基础模板。R13:为图件编制提供专业制图标准,形式为:标准规范、新建图件提供专业模板。2) 数字成图:通过模板定义、数据获取、数据应用于模板的方式实现快速制图。R23:数字成图的图件成果,可以使用图件编制系统进行编辑。R24:模板和数据源定义成果,可以用资源管理系统保存管理。R25:数字成图的结果可以作为GIS应用的底图;使用数据源可以为GIS系统提供动态要素加载的数据。3) 图件编制:制作编辑通用的和专业的图件。R34:图件中的图形数据可以作为图形库的数据交由资源管理系统分类存储;整个图件可以作为成果资料被资源管理系统管理。R35:编制的图件可以作为GIS应用的底图使用。4) 资源管理:模板和数据源、图形坐标、图件文件的管理(存储、分类、授权、发布)。R42:为数字成图提供数据。R43:为图件编辑提供坐标数据和成果图件(用于二次编辑)。R45:为GIS应用提供底图、动态要素数据。5) 图形应用:石油图形应用,GIS应用等。6) 外部数据:数据的正确性、完整性和一致性,是决定油田勘探开发信息化项目能否成功的重要依据。R62:为数字成图提供数据。上述关系,如图2-1所示。图2-1 平台业务2.2.2 应用方案基于以上平台业务的需求,图形平台最终(上层)应用方案由数据服务、业务服务和表示服务几部分组成。1) 数据服务 数据服务由数据服务模块和各类Adapter组成。Adapter用于为不同形式和格式的数据媒体提供一个统一的数据访问接口。数据提供方式主要有二种:一种是使用用户现有的数据库,通过Adapter和数据主服务模块建立一个虚拟的三维数据体。这种形式主要应用于Web浏览,数字成图。另一种是我们提供一个数据库,用户导入各种必须的数据来建立地质模型。2) 业务服务 图形数据的组织和管理,图形模块的绘制与处理以及数字成图的处理(模板+数据)。其中数字成图指模版和数据的装配,模版作为通用性的东西,内容只包括图元属性信息,不包含数据(也可提供模版和数据的集合的单一文件,图件),各个图元是什么数据由该图元的数据源ID属性决定。3) 表示服务 为达到共用和一致性要求,对图形显示和编辑操作抽象出统一规范。只要遵循这些规范,应用之间都可以进行协同操作。平台应用方案的组织结构,如图2-2所示。图2-2 平台应用方案2.3 层次体系结构与框架分析2.3.1 体系结构和框架平台的概念不是一个简单的软件,或者一个功能专一的系统,而是一个可以为其他系统和软件提供各种图形接口和功能的技术环节的一个层的概念。1) 层次体系结构软件体系结构通常被称为架构,指可以预制和可重构的软件结构。 Garlan & Shaw模型的基本思想是:软件体系结构 = 组件(ponent),连接件(connector),约束(constrain)。 其中组件可以是一组代码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示组件之间的相互作用。约束一般为对象连接时的规则,或指明组件连接的形式和条件。 层次式软件体系结构是把大型软件系统按照功能的扩展性,分成若干层。每一层为其上层服务,并作为下层客户。最内层为“内核”,完成最为基本的公用操作。向外各层逐渐进行功能扩展,满足不同系统规模的需求。 层次式软件体系结构的组织方式支持基于可增加抽象层的设计,便于增加新功能,使系统具有可扩展性。这样,允许把一个复杂系统按递增的步骤进行分解。而且,由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,为软件重用提供了强大的支持。 2) 框架框架亦可称为应用架构,框架的一般定义就是:在特定领域基于体系结构的可重用的设计,也可以认为框架是体系结构在特定领域下的应用13。框架包括了一组的抽象概念。这些抽象概念来源于问题领域。框架使得这些抽象概念相互协作,并提供了一种扩展的形式,以实现重用。这是框架的具体工作。框架在抽象概念上进行工作,定义抽象概念之间的协作方式。框架和普通软件的区别就在于,用户通过扩展框架来重用该框架。这些扩展点的设计称为框架设计的核心。1 框架主要技术包括通用点、扩展点和设计模式。其中通用点是业务应用中反复出现的通用主体,存在于特定领域和跨领域框架层中,表现形式为具体类、可执行的形式。扩展点是框架中频繁变化的部分,由应用层实现,表现形式为设计成抽象方法或一组接口。设计模式14是在特定场景下重复发生问题的解决方案,这样,你就能一次又一次的使用该方案而不必做重复劳动。2 框架主要方法包括黑盒框架、白盒框架和灰盒框架。如表2-1所示。表2-1 框架方法方法框架层组成形式应用层使用方式白盒框架抽象类白盒框架是由抽象类组成的框架,开发者使用白盒框架时,要继承框架中的抽象类来建立一个具体类,白盒框架使用继承法支持扩展点。它的缺点是缺乏灵活性。整个处理流程已经固定了。它通常要求开发者了解很多框架组件的实现细节。黑盒框架具体类黑盒框架由直接可用的具体类组成,继承已存在的框架组件来达到客户化的目的,通过组合很多组件来达到预期目的。黑盒框架可能包含很多通用点,它借助组合法来支持扩展点。缺点是因为它是由隐藏了内部实现的组件组成,开发者必须熟悉更多组件以及它们的使用。灰盒框架抽象类、具体类选择继承法、组合法组合的时候,应当牢记权衡每种方法的性能、维护成本和易用性。从性能角度讲,组合法往往比继承法慢。图形平台框架采用通用点/扩展点等技术,基于灰盒框架分离出跨领域的通用点部分和特定领域的扩展点部分,上层应用将通过组合它们来满足不同的业务需求。平台框架的业务分层,如图2-3所示。操作系统层(Windows)基础框架层(.net)应用框架特定领域框架层跨领域框架层业务应用需掌握业务知识的程度低高对特定应用领域是通用的不同业务领域共享的共同主题图2-3 框架的业务分层图形平台的协同框架就是为彰显行为的一致性,屏蔽数据的差异性而设计的,它使不同类型的图件可以在相同的环境中一致性地操作,在此基础上确立图形和数据分离15的协同框架。2.3.2 行为一致性图形的一致性一般可以从三方面归纳:图形属性、图形操作和图形表现形式。如果将图形细分为图元,所有的图元都当作对象看待的话,它们通常由共有属性和专业属性组成。共有属性一般包括几何属性,如圆形还是方形;显示属性,如实线还是虚线显示,专业属性一般根据具体图元而定,如断层特有属性等。图形操作一般分为创建,删除,通过修改属性来改变形状和显示风格,可以在图件上以指点或拉框等方式进行图形选中,旋转等。图形表现形式通常是由简单图元的复合表现出来的,如表现为线形还是直方图。2.3.3 数据差异性图件的不同表现在于描述图件的数据不一样,图形的差异性主要是由于图中的元素(图元)所代表的现实世界中的对象不同所造成的。通常由普通图元和专业图元组成。普通图元是制图的概念,具有几何属性和显示属性的元素,如红色的小点,绿色的宽线。专业图元是专业的概念,真实世界现象的抽象,具有几何属性和特征的专业属性,如井位、层段。2.3.4 协同框架通过对一致性的归纳,我们可以针对图形应用制定出图形应用规范,作为协议,妥善协调用户界面和图形模块之间的运作,使不同的图形在应用时有着共同的行为方式。在协同框架中,把图形系统分为三个部分:图形应用规范、图形模块和图形应用产品。图形应用规范是一种协议,他规范了图形的应用方式,在所有的图形系统中,都遵循同一个规范。图形模块是针对专业图形而开发的特定的程序组件,它或多或少地实现了图形应用规范,有一种专业图形就有一个图形模块。图形应用产品是针对某种图形特定应用(如编制图),根据应用流程而搭建的用户界面以及其他方面的业务处理环节,用户透过此界面,交互地操作图形模块,它实际上是一种基于图形应用规范接口编程实现的可执行程序,对于不同的应用可以有不同的图形应用产品。协同框架如图2-4所示。图2-4 协同框架通过使用此框架,可以获得如下好处:1) 模型和用户界面的分离,由此使更广泛的模块复用17成为可能。2) 在图形模块的设计编制构成中,不必考虑界面元素,只需完成规定的接口实现。3) 应用系统不必考虑图形的内部结构、显示方式和操作方式,专心于专业方面的处理流程。4) 相同的调用方式,不必为不同的图形进行特别的考虑。2.3.5 其它方面的考虑同时,我们必须考虑到,在大部分专业制图系统中,存在其他处理流程环节的程序组件不是我们自己开发的,我们在这些环节上缺少自主性,必须利用其他系统完成主要的专业数据处理工作量,这时,图形技术的应用只是实现专业数据处理后的成果。根据系统自主开发的程度和对图形技术应用程度要求不同,分为三种情况来灵活处理协同框架的各组成部分。第一种情况。专业图形涉及更多的专业技术,有些不是公司组织开发的,这样就需要在制图过程中有使用其他软件系统的环节,因此,我们只需要专注于专业软件的输出成果如何转换到我们的通用格式即可。第二种情况。有些项目需要快速实现图形显示功能,对于编辑等交互操作并无刻意要求,出图只作为专业系统的最后一个功能,因此不需要对其他操作规范进行编程实现,只需要实现图形格式的转换规范其可。第三种情况。对于一些我公司有能力开发的专业制图系统,我们需要从核心开始,按照应用规范编制,从而实现在通用图形编辑系统可以操控的图形模块。这样是一种理想的状况,可能会需要比较大的投入才能实现,不过,可以通过分步实现部分规范,达到可以较快投入适应的要求。对于第一种和第二种情况,通过交换图形文件(或数据对象)的方式显示图形。对于第三种情况,可以更好地控制图形,通过相同的方式,完全地控制图形和数据。如图2-5所示。图2-5 图形交换2.4 框架构成2.4.1 平台分层首先,框架的是为了企业的业务发展和战略规划而服务的,它服从于企业的愿景(vision);其次,框架最重要的目标是提高企业的竞争能力,包括降低成本、提高质量、改善客户满意程度,控制进度等方面。最后,框架实现这些目标的方式是进行有效的知识积累。应用是软件企业的核心,是竞争力的关键所在,因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。采用层次式划分,可将完整的图形平台分为二大部分:图形基础技术和图形应用产品。图形基础技术层为图形应用产品层提供了基础和保证。每一层又由多个小层组成,如图2-6所示。1) 图形基础技术:这一部分包括图形的组成、组织、绘制、操作、交换、运算等。以组件类库和控件等为主要形式提供。2) 图形应用产品:在图形基础技术部分的基础上,针对特定业务需求开发的产品或项目中的图形应用。包括各种专业图件的编制、数字成图、资源管理、GIS应用等。以可执行程序安装包和项目方案的形式提供。图2-6 图形平台框架2.4.2 图形基础绘制技术所有图形系统最终绘制方法的底层实现。也就是说,对图形设备绘图指令的具体调用都是在这里发生的。它以相同的调用方式实现符号、线型、充填、文字的绘制输出,从而减少针对不同图形格式输出时编程的工作量。从库中读取指定的符号或线形,进行缓存后以一致的方式绘制输出。对基础绘制技术的设计要求主要包括:符号和线型可以通过显式的描述进行定义;绘制方法的调用规范以接口方式体现;对于不同绘图设备的绘图指令的调用,应该发生在规范实现的模块内部(这样才能做到,修改一处不影响其余的要求,一致性地改变输出格式);符号库和线形库的设计要考虑符号、线型缓存的要求,缓存的符号线型是在具体图件中使用到的符号线型,这些缓存着的符号线型可以最终嵌入到图件文档中,使文档在脱离两库存在的情况下还可以正常实现(文档的便携性);图形输出的缓存考虑,主要是为了加快显示速度和改善视觉感受。如图2-7所示。图2-7 符号库/线形库结构2.4.3 图形应用规范主要是针对图形应用中遇到的应用(使用)方式进行规范化的归纳总结,它既是一个规范性文档性质的研究成果,也是一个基础的抽象图形系统模块。指导约束具体图形模块的实现方式,使图形模块的编制工作集中于规范和业务特征的实现,而不是用户界面的编程。规范通常由数据模型的规范(包括数据组织、存储、数据交换)、显示绘制的规范、操作控制的规范和基础图形交换格式定义几部分组成。这一部分定义了应用相关的大部分接口规范,是图形平台的重要组成部分,也是图形平台的基础,是区别于以往的公司图形技术的重要特征。所有的图形模块如果实现了这些特征,就可以在依照此规范实现的图形应用中插入使用,从而实现公司所有的图形产品和应用都具有插件式应用的特征。应用规范的制订方法是从图形显示、图形编辑、数字成图、图形交换、GIS技术等应用方面进行归纳,抽象出具有一般性的规律。1) 图形应用规范以接口方式体现;2) 图形交换格式是通过XML文档格式在图形平台不同数据格式之间进行转换。其中XML格式采用XML Schema19方式设计。按层次分为基本类型定义、几何、样式、坐标系、基础图元、符号库线型库五个基础部分,以及扩展应用部分,采用GML3.120的子集 + 针对自身绘图目的进行扩充(样式、图件结构等)结构。图形应用规范,如图2-8所示。图2-8 图形应用规范2.4.4 图形模块针对特定的图件类型,不同程度地实现了图形应用规范的程序组件。分为通用图形模块和专业图形模块,通用图形模块是最基本的图形模块,其他的图形模块至少都可以将内部数据转换成通用图形数据格式,在通用图形模块中使用(只具有图形含义,失去数据的专业含义)。不同的图件类型需要实现不同的图形模块。如通用图形模块、单井柱状图模块、多井对比图模块、多井栅状图模块、等值图模块、统计图模块等。1) 每个图形模块针对特定的专业制图需求,只要求实现符合特定专业出图目的的元素特征即可。2) 通过数据图形关联机制,实现由数据到图形、由图形到数据的双向影响。3) 通用图形模块是基础图形模块,其他图形模块的开发可以不同形式复用通用图形模块的特性。4) 通用图形模块。基础图形学意义上的图件,由图、图层、图元按层次组织,图层的划分和组合体现了专业图类的基本构成框架,图层的缺省显示风格属性代表了各种专业图形要素的制图标准(制图标准一般规范了两个方面的内容:图件中的要素种类、每种要素的表现形式)。图元的种类,只考虑最简单常用的基本图元类型,复杂的图形要素可以通过简单的图元复合而成,基本图元21包括:符号点、线、面、文字、形状(圆,矩形等)、组合。嵌入图元实现其他种类的图件作为图元嵌入到图件中的功能。5) 其他的模块,根据具体的情况,可以实现不同的规范,但是应该有一个最小的集合,这个最低的要求是要实现内部数据到通用图形数据的交换规范。图形模块间的交换,如图2-9所示。图2-9 图形模块之间的交换2.4.5 数字成图将数据通过自动化手段制成符合业务标准的图件的过程。采用图件 = 模板 + 数据的思想,快速生成图件。模版用来存储图形布局,图元属性等图形信息,用来表示同一类型和显示风格的图,配合不同的数据显示出一张完整的图。通过在预先定义的图件模板上绑定提取预先定义数据来源的图形数据,快速的生成一幅规范的图件。对于最终用户来讲,数字成图就是一键式成图。主要用于以下目的:“草图素材”目的,根据制图标准快速生成标准化的草图,可供图形编辑系统进一步修饰编辑;“作战室”目的,为作战监控系统提供实时反映目标变化的图件内容;“应用底图”目的,为其他应用(GIS)提供地理、地质底图。围绕标准、快速的目标,而必须的技术方案和系统组成。包括:模板制作;数据获取,图形数据可以来源于专用的图形数据库,也可以是客户的业务数据库;资源管理(图形、图件、模版)。1) 模板制作可以纳入到图形编辑系统中实现。2) 数据源的定义,要考虑不同数据来源,包括数据的存储方式。3) 图形数据获取方式的一致性,采用图形数据服务器的方式,从而屏蔽不同的数据存储系统、位置、存取方式的方面的差异。通过相同形式的图形数据请求,返回相同格式的图形数据。4) 多个图形数据服务器的整合处理。数字成图方案,如图2-10所示。图2-10 数字成图2.4.6 图形编辑系统通过人机交互方式,完成图件新建、修改编辑、打开保存以及图形模块提供的其他图形应用功能。主要是针对图形应用规范的图件编辑部分进行用户界面方面的支持。主要包括:图件文档结构的展示、编辑;图形元素的属性编辑(坐标属性、显示属性、信息属性);图形的显示;将命令和用户事件传递到图形模块;图形模块的触发的事件的处理。图形编辑系统分为两类:通用图形编辑系统和专用图形编辑系统。通用图形编辑系统是按照图形操作规范实现的侧重于图件的制作和编辑的软件系统,任何按照图形操作规范实现的图形模块都可以实现即插即用的插件效果。图形模块实现了多少规范,系统就可以使用多少图形应用功能。专用图形编辑系统是没有按照规范编制的特定图形编辑制作系统。一些特殊的专业图件,需要有特殊的编辑操作,如果这些特殊的编辑操作没有被图形应用规范考虑包括进来,就需要编制特定的应用程序来操控这些图件。主要负责用户界面布局和用户事件的传递。通用图形编辑系统,是对图形应用规范中编辑操作相关的部分进行接口编程。对应用规范中指定的各种协议提供支持。图形模块的加载是在运行时完成的(不是编译时)。图形模块实现的规范协议将得到支持,实现的协议将不影响系统的运行。系统的主要流程是:启动图形模块根据应用规范的协议进行协商开始用户操作。协商的目的是建立相应的界面元素,映射事件处理方法。2.4.7 图形控件为适合项目应用而开发的平台组件。主要功能不在于图形的编辑,而在于目标的选择、信息显示和应用触发等方面的应用。2.5 小结 本章通过对石油图形平台所需满足的整体框架进行分析,包括基础技术部分和应用部分各组成模块,为下一步平台设计做好准备工作。第三章 图形平台基础部分设计3.1 设计原则设计先行,技术跟进。必循严格遵循逐层推进的 设计审核实施检查 流程开展项目的技术活动。采用松耦合方式,组件化、可扩展(插件技术)和基于接口的设计编程。自底向上逐层设计,上层框架控制下层的独立开发模块,可分离的模块成果。通过规范协议协调子系统之间的交互,通过机制指导功能实现的方法调用次序。规范是原则,机制是实现技巧。3.2 图形平台开发框架3.2.1 层间关系为了更好的看清图形平台各层之间的关系,便于实现。我们从前一章中的平台框架(图2-6),进一步将图形平台细分为下面几部分:图性基础部分、绘制技术部分、图形应用规范部分、各种图形模块部分(优先考虑通用图形模块)、通用图形编辑器、通用图形控件、数字成图部分(包括图形库和成果库)、图件库应用等。如图3-1所示。图3-1 平台框架关系图其中每个部分相当于一个或一组代码工程,同样,这些部分从粗粒度角度看分为两部分:基础技术层和应用产品层。每一层又由其它小层组成,每一个部分都是建立在底层部分的基础之上的。1) 基础技术层以技术文档和供二次开发的类库及开发手册形式提供,不是面向最终业务客户的,而是面向软件开发人员的。软件开发人员可以在这些技术和模块的基础上构建自己的应用系统。这一层主要包括图形基础、基础绘制技术、图形应用规范和图形模块部分,是本文重点研究和开发的对象。2) 应用产品层以可执行程序安装包的形式提供,面向最终业务客户,最终用户可以在此系统上直接开展业务工作。包括图形应用、图形控件和图形编辑系统。3.2.2 图形基础基础技术部分的最底层,是其它各部分的基础,之上的各层都会用到它。该模块内部封装了几何23和曲线算法、地球投影和坐标转换、重新实现的点(CPointD)、尺寸(CSizeD)、矩形(CRectD)和矩阵(CMatrix3) 24类,其中矩阵类用于对坐标进行线性变换,如平移,旋转,放大,镜像,切变等。此处要求算法效率要高,算法过程中不用或尽量少用临时的内存分配。3.2.3 基础绘制技术1) 符号库设计实现符号的绘制、管理功能,使上层应用能方便地使用各种符号元素。从用户角度来看,希望有更多的参数来控制符号的显示,如符号单一颜色,线宽,字体等参数,利用这些参数减少符号的数量同时增加灵活性;符号元素集合(作为一个整体,形成子符号)可以对符号的放大系数,旋转角度等参数作出不同的表现,共有三种情况:子符号的大小不受符号的放大系数或旋转角度影响;子符号受符号的放大系数或旋转角度影响;子符号受符号的放大系数或旋转角度影响,但要求元素不变形;一幅图件中同时使用多个符号库;图件要能将它所使用的符号数据内嵌到图件中,能作为选项脱离符号库显示和使用。从程序角度来看,符号和线型可以通过显式的描述进行定义;符号绘制不同的油田可能有不同的绘制方式,设计时要考虑这种变化的需求,使之易于扩展和维护,可以定义一个绘制符号的接口,不同的绘制方式有不同的接口实现来达到这一目的;不同的应用程序可能有不同的符号应用规则,例如一个符号大小不一样时表现形式不一样,可能只取其中的某一部份,放大到某一程度时,符号里的某元素(集合)大小不再变化,但间距会变化,这种需求可能使符号在不同的状态下有不同的表现,我们可以对同一个符号实现有多种表现,每种表现我们称之为帧,符号应用规则是在应用程序(用户程序)中实现的,帧的替换规则也是在应用程序中实现的,由符号库使用程序确定在什么情况下使用什么帧;符号的绘制在图形绘制技术中频繁使用,要求有较好的时间性能;符号库要提供对使用过的符号进行缓存(标记)的功能,以利于速度、存储等性能的改进,同时可以容易地得到图件中使用过的符号,用于在图件文档中嵌入这些符号。要注意的是,以挑选为目的的符号浏览,不应进入缓存。1 数据结构符号及其元素的数据存储结构包含绘制时所需要的全部数据,主要有坐标数据:对符号而言,就是符号的中心坐标,缺省时是0,使用者自由设定使符号处于不同的位置,对符号元素(或子符号)而言,坐标数据是相对于符号中心的相对坐标,绘制时使用者无须更改;符号(CSymbol) 25包含文本(SymText)、圆(椭圆,扇形)(SymArc)、曲线(SymCurve)和符号自身(子符号),还有符号帧(Frames)。静态数据结构,如图3-2所示。图3-2 符号结构2 类设计符号库定义了符号绘制接口ISymbolDrawer和它的一个实现CSymbolDrawer,规范了符号绘制方法调用形式,其实现类可以实现各自的特殊绘制逻辑。绘制符号时,只绘制符号图元,而不再绘制符号图元中包含的帧。符号库管理类CSymbolLib,用于加载符号库文件或数据片断,具有符号缓存机制,由于加快符号获取速度,减少内存占用,获得使用过的符号。符号类CSymbol,符号数据的内存表现形式,避免重复从XML数据中解析数据所带来的效率低下,它包括了符号帧和各种符号图元。各种符号图元(CText、CSector和CCurve)及其基类CSymbolElement。PickSymbol为浏览符号,选取指定的符号所用。如图3-3所示。图3-3 符号库类图采用posite设计模式。引用posite模式的意图为:将对象组合成树型结构以表示整体部分的层次结构,posite使得用户对单个对象和组合对象的使用具有一致性26。这里符号元素和符号在使用方面已经没有清晰的界限,符号是组合对象,符号元素是单个对象,符号和符号元素的使用具有一致性。符号的绘制采用Strategy设计模式。引用Strategy模式的意图是:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于它的客户而变化26。在这里,定义不同的绘制算法,封装起来,当用户要求绘制算法改变时可以相互替换。将来用户的需求变化可能要求相同的符号数据要有不同的绘制方法,就可以新增不同的具体绘制类来实现ISymbolDraw绘制接口。这里的绘制方法意指绘制策略,是指算法的不同。比如某个油田需求特别,要求符号里的文字全为红色的,其余(矩形、圆、曲线)不变。现有的符号数据结构无法实现这点,只能全部重新制作一套新的符号。但采用Strategy策略模式,将数据结构和绘制分离,只需针对这个油田写一个新的绘制类即可。3 坐标变换设符号内某点P的坐标为(x0,y0),符号的坐标数据以符号中心定位。符号库文件中某符号的宽度为w0,高度为h0(页面坐标),则符号变形系数如参数3-1所示。 (3-1)A. 按照指定的宽高绘制符号设绘制时要求的符号宽度为w,h(页面坐标),绘制时P点的坐标公式如公式3-2所示。 (3-2)以上是按照指定的宽高绘制符号的情况。但还有可能按指定的宽,以符号的缺省宽高比例绘制的情况,或者按指定的高,以符号的缺省宽高比例绘制的情况。B. 按指定的宽w,以符号的缺省宽高比例绘制设绘制时要求的符号宽度为w,h(页面坐标),绘制时P点的坐标公式如公式3-3所示。 (3-3)C. 按指定的高h,以符号的缺省宽高比例绘制设绘制时要求的符号宽度为w,h(页面坐标),绘制时P点的坐标公式如公式3-4所示。 (3-4)关于长度的变换,都可以转化为坐标的变换。例如一个矩形,可以用两个坐标点来确定,也可以用一个左上点和长宽来确定,但这两种方式都是可以相互转换的。例如我们用GDI+绘制一个圆,当用全局变换在X方向和Y方面以不同的比例缩放时,圆就会变成椭圆。2) 线形库设计实现线型的绘制、管理功能,使上层应用能方便地使用各种线型。线型修饰支持实线、虚线、点划线、自定义等初级线型,及颜色设定,可以设定与原始曲线的距离值(偏离值);修饰支持按指定的位置沿着曲线的路径绘制文本或符号;支持以上所有方式的复杂组合,但不能递归组合;线型的绘制不同的油田可能有不同的绘制方式,设计时要考虑这种变化的需求,使之易于扩展和维护,可以定义一个绘制线型的接口,不同的绘制方式有不同的接口实现来达到这一目的;线型的绘制在图形绘制技术中频繁使用,要求有较好的时间性能;图件要能将它所使用的线型数据内嵌到图件中,能作为选项脱离符号库显示和使用,线型库要提供对使用过的线型进行缓存(标记)的功能,以利于速度、存储等性能的改进,同时可以容易地得到图件中使用过的线型,用于在图件文档中嵌入这些线型。要注意的是,以挑选为目的的线型浏览,不应进入缓存。1 数据结构采用树形结构,但深度只允许一层。根节点是容器,子结点是修饰。线型是由笔修饰(CurveStylePen)、首尾(文本和符号)修饰(CurveStyleEnd)、符号修饰(CurveStyleSymbol)、文本修饰(CurveStyleText)组成。静态数据结构,如图3-4所示。图3-4 线形结构线形由下面几种基本的修饰组成千变万化的复杂线型。笔修饰是用画笔可以绘制的修饰。包括实线、虚线、点划线、自定义等修饰,及颜色设定,可以设定与原始曲线的距离值(偏离值);符号修饰为沿着曲线的路径按指定的位置绘制符号,支持因绘制符号导致的曲线分割。文本修饰为沿着曲线的路径按指定的位置绘制文本,支持因绘制文本导致的曲线分割。首尾符号修饰是在曲线的头或尾处绘制符号。首尾文本修饰是在曲线的头或尾处绘制文本。2 类设计线形库定义了绘制接口ICurveStyleDrawer和缺省的实现CCurveStyleDrawer,规范了线型绘制方法调用形式,其实现类可以实现各自的特殊绘制逻辑。线型库类CCurveStyleLib,用于加载线型库文件或数据片断,具有线型缓存机制。线型类CCurveStyle,线型对象数据的内存表现, 避免重复从XML数据中解析数据所带来的效率低下,包括子线型修饰。各种线型修饰图元和其基类CStyleBase,包括线型文本修饰类CStyleText和线型符号修饰类CStyleSymbol等。PickCurveStyle为浏览线形时,选取指定的线形所用。如图3-5所示。图3-5 线形库类图线型的绘制采用Strategy设计模式。引用Strategy模式的意图是:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于它的客户而变化26。将来用户的需求变化可能要求相同的线型数据要有不同的绘制方法(绘制函数),就可以新增不同的具体绘制类来实现ICurveStyleDraw绘制接口。这里的绘制方法意指绘制策略,是指算法的不同。3.2.4 图形应用规范1) 应用关系客户程序操作图形模块,图形模块响应操作在模块之间互相通迅,并将内部状态的变化通知客户程序。客户程序和图形模块之间的黑盒关系,如图3-6所示。图3-6应用关系图形应用规范就是指客户程序和图形模块以及为了实现客户程序和图形模块之间的交互、图形模块内组件间的交互。如表3-1所示。表3-1 关系级别图形规范级别图形模块一级客户程序使用图形模块的过程交互方式客户程序与图形模块之间图形模块内组件之间二级组件之间的相互作用是通过交互界面实现的,分为两级交互界面1 一级交互界面客户程序与图形模块之间的交互包括:创建功能对象、设置功能对象、使用功能对象、处理功能对象的事件。客户程序发送指令并处理事件,图形模块处理指令并触发事件。这一级交互界面对于图形模块的实现是强制性的,即图形模块必须事先符合这些交互规范,才能在二次开发中以规范的开发编程方式使用这些模块。使用这些模块的项目开发人员,只需了解一级交互界面规定即可以开发常规的图形应用。2 二级交互界面指图形模块内部的功能交互界面,它是图形模块实现的指导性(其中一部分是强制性的)规范,所以他的实现可以使用一级交互界面、也可以使用二级界面,还可以有条件地使用特定的对象类。2) 图形模块交互图形模块的交互涉及到以下对象:文档数据对象、坐标系对象、绘制工具对象、操作工具对象、信息工具对象和命令解释器对象。这些对象之间的关系,如图3-7所示。图3-7 图形模块对象间交互1 文档数据对象文档数据对象是指不同类型文档(图件)和其内部数据体所表示的现实数据对象。为了客户程序协调文档对象和其他对象之间的协同关系,文档数据对象应该具有以下能力特征:文档特征、结构(数据项)特征、图形特征和信息(要素)特征。如图3-8所示。图3-8 文档数据对象A. 结构(数据项)接口IDataItem代表了数据的层次结构,通过它可以得到内部数据的组织结构, 获得、更新数据内容,进行数据交换,依据其他特征更新数据内容(实现图形数据的协同), 触发数据项变更事件(可以事件冒泡上返到上层对象处理),还可以得到图形特征接口和要素特征接口。类图如图3-9所示。图3-9 结构(数据项)特征B. 图形接口IGraph代表了现实对象可以具有可以以图形方式表现的特征。任何数据的图形表现都可以通过简单的图形元素(基础图元)的组合来表示,因此图形特征的接口主要实现数据到图形的转换,通过此接口可以获得表现此数据的各个基础图元。基础图元也应该具有图形特征(即基础图元也是从图形接口派生下来的)。图形的改变应该触发出事件,通知包容他的对象进行合适的处理(比如根据图形更新数据)。图形又包含两方面:样式和(坐标)数据。一个图形可能有多个样式表示它的不同方面的特征,比如面:有充填样式表示内部特征、有线型样式表示轮廓特征,有文字样式表示标注特征。基础图元的样式是固定的。对于复合图元(由基础图元组成),它的样式表现为其所有子图元的样式集合,处理方法可以转化为基础图元的来处理。类图所图3-10所示。图3-10 图形特征图形样式类CStyle,分为点样式(CPointBaseStyle),面样式(CSurfaceStyle)由线样式(CCruveStyleEx)和填充样式(CFillStyle)组成,文本样式(CTextStyle)。其中点样式细分为3种,分别是固定标记点样式、字符点样式和符号库样式;线样式细分为2种,分别是点划线样式和线型库样式;填充样式细分为5种,分别是颜色填充、模式填充、渐变色填充、符号填充和图像填充。图形样式类图,如图3-11所示。图3-11 图形样式C. 文档接口IDocument文档接口具有文档的行为方式,包括: 文档的文件操作、资源、元数据、获得数据项的根节点、作为顶层组件触发事件。打开或保存一幅图件的相关信息,包含图件的根节点、选

温馨提示

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

评论

0/150

提交评论