基于SVG的油田井位图发布系统毕业设计_第1页
基于SVG的油田井位图发布系统毕业设计_第2页
基于SVG的油田井位图发布系统毕业设计_第3页
基于SVG的油田井位图发布系统毕业设计_第4页
基于SVG的油田井位图发布系统毕业设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

大庆石油学院本科生毕业设计(论文)PAGEPAGE40毕业设计论文基于SVG的油田井位图发布系统

摘要基于SVG的油田井位图发布系统的是开发井数据库项目中的一个重要的模块,目的是在SVG格式的油井分布图中轻松的实现大量井位数据的动态加载;进而利用SVG图形的特性方便的实现井位信息的定位和利用。本文主要是在B/S模式下利用SVG(ScalableVectorGraphics可升级矢量图像)和Javascript技术实现油田坐标系统中大量井位信息的动态、快速加载,方便用户对井位坐标信息的查找及利用首先利用SVG建立某一地区的油田坐标信息描绘,然后从数据库中抽取该地区所有油井的井位坐标信息,并通过某种的方式将这些井位信息绘制到SVG地图中;通过SVG地图放大、缩小、移动、查找文字等功能实现井位信息的查询。然后利用数据库技术实现大量井位数据的动态加载,需要加载的数据信息包括油井的坐标、类型、所属单位等相关信息。完成后能够使用户以浏览器的方式打开井位图并对地图上的元素进行操作。关键词:油田井位图;动态加载;B/S模式;SVG;JavascriptAbstractoilfieldwellpositionchartissuedthesystemBasedontheSVGisdevelopsinthewelldatabaseprojectanimportantmodule,thegoalisintheSVGformoilwelldistributionmaptherelaxedrealizationmassivewellpositiondatadynamicload;ThenusestheSVGgraphthecharacteristicconveniencerealizationwellpositioninformationlocalizationandtheuse.Thisarticlemainlyis(ScalableVectorGraphicsmaypromotevectorimage)undertheB/SpatternusingSVGandintheJavascripttechnologyrealizationoilfieldcoordinatessystemthemassivewellpositioninformationtendency,thefastload,convenientusertowellpositioncoordinatesinformationsearchanduseFirstestablishessomelocalusingSVGtheoilfieldcoordinatesinformationdescription,thenextractsthislocalalloilwellsfromthedatabasethewellpositioncoordinatesinformation,anddrawsupthroughsomewaythesewellpositioninformationintheSVGmap;Enlarges,functionsandsoonreduction,migration,searchwritingthroughtheSVGmaprealizesthewellpositioninformationinquiry.Thentheusedatabanktechnologyrealizationmassivewellpositiondatadynamicload,needstoloaddatamessageincludingoilwellcoordinates,type,subordinateunitandsoonrelatedinformation.Aftercompletescancausetheusertoopenthewellpositionchartbythebrowserwayandtocarryontheoperationtoonthemapelement.Keywords:Oilfieldwellpositionchart;Dynamicload;B/SMode;SVG;Javascript目录TOC\o"1-2"\f\h\z第1章概述………………1.1井位加载………………….1.2矢量图井位加载…………1.3GML、VML和SVG的比较……………1.4本系统的优势……………第2章“基于SVG的油田井位图发布系统”系统开发工具………………2.1J2EE简介…………………..2.2B/S模式介绍…………….2.3JAVASCRIPT语言简介………………2.4XML简介……………………2.5SVG语言简介…………2.6ORACLE数据库简介………………..第3章“基于SVG的油田井位图发布系统”系统分析……3.1需求分析…………………3.2可行性分析………………3.3各功能模块的主要功能3.4系统功能模块图………………第4章“基于SVG的油田井位图发布系统”系统设计及实现………………4.1数据表结构的描述………………4.2系统的界面设计及实现…………………4.3系统的功能设计及实现…………………4.4系统测试………第5章结束语………参考文献……………………致谢…………附录………………………概述1井位加载1.1随着计算机的使用越来越普遍,计算机在各行各业也发挥着越来越重要的作用。它正改变着我们的生活,并将远远超过电话、电报、汽车、电视……对人类生活的影响。计算机可以通过Internet带给我们知识、信息、机会、观念……甚至更多,它早已不是计算机专业人士的专利了,虽然它已成为千千万万人士不可缺少的生活组成部分了。但是对于某些具有较强专业技术概念的单位,则需要用到更为专业的计算机技术。如果你是科研工作者,通过它可以用图像表述各种学术问题,使之更容易被广大的人接受;如果你是作家,你可以在你的创作中加入各种图形,更好的表现你的艺术思想;如果您是市场推广或策划人员,您可以用图像图形将您的产品介绍给顾客;如果您是教育工作者,您可以通过更形象化的方式传授知识给学生们。那么,如果是大型的油田开采企业或相关科研单位呢?对于井位信息的查询,加载以及井位图的控制等工作,如何以一种软件系统的方式实现出来便是本文的主要内容,本文主要是在B/S模式下利用SVG(ScalableVectorGraphics可升级矢量图像)和Javascript技术实现油田坐标系统中大量井位信息的动态、快速加载,方便用户对井位坐标信息的查找及利用。因此,计算机在给我们的生活带来轻松的娱乐空间的同时,还为我们的工作带来了便捷。基于SVG的油田井位图发布系统的是开发井数据库项目中的一个重要的模块,目的是在SVG格式的油井分布图中轻松的实现大量井位数据的动态加载;进而利用SVG图形的特性方便的实现井位信息的定位和利用。我的毕业设计“基于SVG的油田井位图发布系统”就是针对以上功能设计和实现的,希望能够实现一个基于B/S模式的井位发布系统。在设计中,我采用SVG图形编辑语言,把JavaScript作为脚本工具。SVG(ScalableVectorGraphics)是W3C(WorldWideWebConsortium)组织开发的矢量图形标准。它基于XML,其图形对象既能被分组,又能被加入样式、变换和组合。基于XML意味着可以使用绝大部分现今网络成熟的技术如JaveScript,VBScript,CSS,DOM等,也可以无缝应用XML家族中的技术标准如XSL,XHTML,XPointer,SMIL等。SVG的事件处理使用DOM2(DocumentObjectModel)中的机制,支持所有DOM2-EVENT中定义的接口,事件发出、事件捕捉、事件接收者等一系列功能都已封装实现。SVG结合JavaScript脚本语言,可以轻松的实现井位图的生成及控制。2矢量图井位加载1.21.什么是XSLT大家可能听说过XSL(eXtensibleStylesheetLanguage),XSL和我们这里说的XSLT从狭义上理解是一样的,而按照W3C的标准,XSLT的说法更严格些,因此我们在文章中统一使用XSLT的称法。XSLT的英文标准名称为eXtensibleStylesheetLanguageTransformation。根据W3C的规范说明书(/TR/xslt),最早设计XSLT的用意是帮助XML文档(document)转换为其它文档。但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式,更全面的定义应该是:XSLT是一种用来转换XML文档结构的语言。2.为什么要用XSLT我们已经知道,XML是一种电脑程序间交换原始数据的简单而标准的方法。它的成功并不在于它容易被人们书写和阅读,更重要的是,它从根本上解决了应用系统间的信息交换。因为XML满足了两个基本的需求:(1).将数据和表达形式分离。就象天气预报的信息可以显示在不同的设备上,电视,手机或者其它。(2).在不同的应用之间传输数据。电子商务数据交换的与日俱增使得这种需求越来越紧迫。为了使数据便于人们的阅读理解,我们需要将信息显示出来或者打印出来,例如将数据变成一个HTML文件,一个PDF文件,甚至是一段声音;同样,为了使数据适合不同的应用程序,我们必须有能够将一种数据格式转换为另一种数据格式,比如需求格式可能是一个文本文件,一个SQL语句,一个HTTP信息,一定顺序的数据调用等。而XSLT就是我们用来实现这种转换功能的语言。将XML转换为HTML,是目前XSLT最主要的功能。3.XSLT的历史想很多其他XML家族成员一样,XSLT是由W3C起草和制定的。它的主要发展历程如下:.1995年由JamesClark提议;.1997年8月正式提案为XSL;.1998年5月由NormanWalsh完成需求概要;.1998年8月18日XSL草案发布;.1999年11月16日正式发布XSL1.0推荐版本。目前,XSLT仍然在快速的发展中,XSLT1.1的草案已经可以在W3C网站(/TR/xslt11)上看到。4.什么是XPathXPath是XSLT的重要组成部分,我们将在第四章讲解它的详细语法。那么XPath是什么呢?我们首先来了解一下XSL系列的"家族"关系。XSL在转换XML文档时分为明显的两个过程,第一转换文档结构;其次将文档格式化输出。这两步可以分离开来并单独处理,因此XSL在发展过程中逐渐分裂为XSLT(结构转换)和XSL-FO(formattingobjects)(格式化输出)两种分支语言,其中XSL-FO的作用就类似CSS在HTML中的作用。而我们这里重点讨论的是第一步的转换过程,也就是XSLT。另外,在学习XML时我们已经知道XML是一个完整的树结构文档。在转换XML文档时可能需要处理其中的一部分(节点)数据,那么如何查找和定位XML文档中的信息呢,XPath就是一种专门用来在XML文档中查找信息的语言。XPath隶属XSLT,因此我们通常会将XSLT语法和XPath语法混在一起说。用一种比较好理解的解释:如果将XML文档看作一个数据库,XPath就是SQL查询语言;如果将XML文档看成DOS目录结构,XPath就是cd,dir等目录操作命令的集合。5.XSLT和CSS的比较CSS同样可以格式化XML文档,那么有了CSS为什么还需要XSLT呢?因为CSS虽然能够很好的控制输出的样式,比如色彩,字体,大小等,但是它有严重的局限性,就是:(1)CSS不能重新排序文档中的元素;(2)CSS不能判断和控制哪个元素被显示,哪个不被显示;(3)CSS不能统计计算元素中的数据;换句话说,CSS只适合用于输出比较固定的最终文档。CSS的优点是简洁,消耗系统资源少;而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内存比较多。因此,我们常常将它们结合起来使用,比如在服务器端用XSLT处理文档,在客户端用CSS来控制显示。可以减少响应时间。Javascript方式在JavaScript中是基于对象的编程,而不是完全的面向对象的编程。那麽什麽是对象呢?如果你学过一些VB的编程,对这个名词一定不会陌生。通俗的说,对象是变量的集合体,对象提供对于数据的一致的组织手段,描述了一类事物的共同属性。在JavaScript中,可以使用以下几种对象:1.由浏览器根据web页面的内容自动提供的对象。2.JavaScript的内置对象,如Date,Math等。3.服务器上的固有对象。4.用户自定义的对象。JavaScript中的对象是由属性和方法两个基本的元素的构成的。对象的属性是指对象的背景色,长度,名称等。对象的方法是指对属性所进行的操作,就是一个对象自己所属的函数,如对对象取整,使对象获得焦点,使对象获得个随机数等等一系列操作。举个例子来说,将汽车看成是一个对象,汽车的颜色,大小,品牌等叫做属性,而发动,刹车,拐弯等就叫做方法。可以采用这样的方法来访问对象的属性:对象名称.属性名称,例:mycomputer.year=1996,mycomputer.owner=“me”。可以采用这样的方法,将对象的方法同函数联系起来:对象.方法名字=函数名字或对象.属性.方法名,例:this.display=display,document.writeln(“thisismethod”)。多看或多写一些程序,就会理解对象的方法和属性的含义了!各个对象的各种属性和方法,事件是浏览器响应用户交互操作的一种机制,JavaScript的事件处理机制可以改变浏览器响应用户操作的方式,这样就开发出具有交互性,并易于使用的网页。浏览器为了响应某个事件而进行的处理过程,叫做事件处理。事件定义了用户与页面交互时产生的各种操作,例如单击超级连接或按钮时,就产生一个单击(click)操作事件。浏览器在程序运行的大部分时间都等待交互事件的发生,并在事件发生时,自动调用事件处理函数,完成事件处理过程。事件不仅可以在用户交互过程中产生,而且浏览器自己的一些动作也可以产生事件,例:当载入一个页面时,就会发生load事件,卸载一个页面时,就会发生unload事件等。归纳起来,必需使用的事件有三大类:1.引起页面之间跳转的事件,主要是超连接事件。2.事件浏览器自己引起的事件。3.事件在表单内部同界面对象的交互。3GML、VML和SVG的比较GML、SVG和VML都是基于XML的可用来描述矢量图形的标记语言,都是XML词表,它们的语法并不难理解,但它们都有各自不同的用途和特点,下面简单介绍一下。GML(Geography

Markup

Language)是基于XML的空间信息编码标准,由OpenGIS

Consortium

(OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。运用GML,封装的地理数据和图形解释是清楚分离的。GML基于XML用文本表示地理信息,由于GML可看成是XML的一个具体的词表,熟悉了XML就比较容易理解GML。而且随着XML的应用日益广泛,GML也将受益。另外文本比较简单、直观,容易理解和编辑。GML封装了地理信息及其属性,GML基于地理信息抽象模型,即空间实体特征及属性封装。地理特征包括一系列的属性和相应的几何信息,一般来说属性由名字、类型和值组成,几何信息由基本元素如点、线、面、折线、多边形等组成。目前GML主要局限在二维应用,正扩展到二维半和三维空间以及特征间的拓扑关系。GML允许相当复杂的特征,如特征间的嵌套。例如飞机场由出租汽车道、飞机跑道等组成。GML封装了空间地理参考系,空间地理参考系统是地理信息系统数据处理的基础。GML封装了空间地理参考系统、主要的投影关系等,保证分布式处理的扩展性和灵活性。GML可以实现地理数据的分布式存储GML对地理数据的分发是非常方便的技术手段,但其作用不止局限于此,同样可以成为地理数据分布式存储的重要手段。主要的技术工具是XLink和Xpointer。从上边的介绍可以看出GML作为描述空间信息的元语言的一些优点。它只能描述空间实体的矢量信息和属性,具体显示的时候可采用两种不同的途径:GML

Drawà

Display和GML

Transform

à

SVG,VML

Draw

àDisplay第一种途径需要直接操作GML数据进行分析并显示。第二种途径是把GML数据转换成相应的图形格式的数据,例如SVG、VML及X3D。然后由已经存在的支持这几种图形格式的软件进行显示。下面介绍一下SVG和VML。VML(Vector

Markup

Language)是一个最初由Microsoft开发的XML词表,现在也只有IE5.0以上版本对VML提供支持。使用VML可以在IE中绘制矢量图形,所以有人认为VML就是在IE中实现了画笔的功能。下面介绍一下VML的优点:基于XML标准,XML是公认拥有无穷生命力的下一代网络标记语言,VML具有先天的优势,它的表示方法简单,易于扩展等等。支持高质量的矢量图形显示,VML支持广泛的矢量图形特征,它们基于由相连接的直线和折线描述路径。在VML中使用两个基本的元素:shape和group。这两个元素定义了VML的全部结构;shape描述一个矢量图形元素,而group用来将这些图形结合起来,这样它们可以作为一个整体进行处理。由文本构成的图像,并可集成到HTML。由于VML使用简单的文本来表示图像,这样就可用很少的字节来表示比较复杂的图像。VML与HTML兼容,通过在HTML中声明VML命名空间并声明处理函数,就可以和其他HTML元素一样使用VML元素,在客户端浏览器显示图像。VML标记里面可以定义DHTML大部分属性和事件,比如说id、

name、title

、onmouseover

等等。支持交互与动画,VML的功能不只是绘图,他还可以在图形中嵌入文本,并可实现超链,还可通过脚本语言实现一定的动画功能。SVG(Scalable

Vector

Graphics)

SVG是一种基于XML的开放的矢量图形描述语言。SVG图像是与XML1.0兼容的文档,SVG元素是指示如何绘制图像的一些指令,阅读器(Viewer)解释这些指令,把SVG图像在指定设备上显示出来。使用SVG可以在网页上显示出各种各样的高质量的矢量图形,支持很多您想象得出的功能:几何图形、动画、渐变色、滤镜效果等。最关键的是,它也是完全用普通文本来描述的!也就是说,这是一种专门为网络而设计的基于文本的图像格式。SVG是对PGML和VML的一种综合,所以VML的优点也就成为SVG的优点,例如:基于XML标准,高质量的矢量图像,由文本构成的图像我们可以不用任何图像处理工具,仅仅用记事本就可以生成一个SVG图像。这对于图像处理的工作者来说可能会感到不可思议。其实仔细想想也可以理解,矢量图像一般是以算法指令来描述,建立在文本基础上的SVG图像中所有的描述语句都可以直接观察到,所以也非常容易进行二次修改与更新,“可升级”的特点在这里可以得到恰当的反映。另外,与VML相比SVG还有一些优点:1.灵活的文件格式SVG可升级的特性不仅仅表现在二次修改方面,还表现在另外很多地方,包括这里介绍的灵活的文件格式。在以前的图像中,文本都作为位图而保存于图像中,图像形成以后不能单独对文本进行修改;在PNG格式中这一点有所改进,文本可作为一个独立的层存在;SVG更灵活地扩展了图像的文件格式,它由三个部分组成:矢量图形、位图和文字。这样SVG不仅仅可以应用矢量图像和文字对象,同样可以纳入位图,可以制作出任何其它格式图像能达到的效果。由于文件格式是文本形式的,可以很容易地在以后任何时候进行修改。而且在页面运行的过程中,也可以对很多部分做即时的修改,其中的图形描述还可以重复使用。2.支持交互和动画SVG支持SMIL(synchronized

multimedia

integration

language),使得用户可以自由的同SVG中的元素完成一些交互的动作,从而完成既定的目标,这一点在目前单独依靠图片是完成不了的,需要由网页中的脚本语句来实现。

3.支持字符查找查找“图片”中的字符,在SVG中成为可能。而这在其它格式的图片文件中则是不可能的。4.支持Xlink

和Xpointer

这样就可以在SVG文档之间制作超级链接。SVG作为W3C组织正式推荐的图像格式,拥有众多的支持机构。像Adobe公司已经宣称将在推出的Adobe图像处理套件如Illustrator、Photoshop、GoLive和Cyber

Studio中集成SVG的全部功能,并且还提供Netscape

Navigator和IE的插件,以便使其能够直接支持SVG文件的浏览。Netscape和Microsoft公司也已经开始进军SVG领域,这标志着未来的网络浏览器将会内置对SVG文件的支持功能。总结GML、SVG、VML都与矢量图形有着密切的关系:GML在表示实体的空间信息的同时加入了实体的其他属性信息,是表示实体的空间信息和属性的编码标准,但它并不支持直接显示图形。而VML和SVG是在表示图形的矢量信息同时加入了图形的显示信息(即以什么样的样式显示矢量图形),是显示矢量图形的两种比较好的格式。相比之下,SVG是综合了VML的优点后推出的,是国际标准,它比VML具有更多的优点,也有更广阔的前景。但由于VML有IE的支持,而SVG要想在浏览器中显示就需要安装插件,在这一点上,VML优于SVG。4本系统的优势从效果来看,本程序较好的实现了设计目标。它具有以下优点:1.功能完善:本软件的设计目标就是实现一个专门井位发布及加载系统,由于目标单一,技术上难度不大,较好的实现了加载、放大、缩小、移动、选择、查询油田井位发布系统需要的大部分功能。2.方便性:本编辑器采用B/S模式,直接嵌入网页中。只需InterNet上的一台服务器,所有计算机可以在任意地点,任意时刻,使用本发布系统。而且,用户在使用本系统时,只需要一个IE(5.0以上版本),和一个SVGview插件,即可以打开本系统进行井位操作。3.矢量图形:较位图而言,矢量图形具有文件小、占用磁盘空间小等优点,非常适合于网络传输,而且矢量图不受分辨率的影响,能够任意的放大缩小而不失真。因此,它的使用非常广泛。而系统正是这样一款矢量图形发布系统。4.存储灵活:本程序编辑的矢量图形的可以存在服务器端,也可以存在客户端。方便了用户的对地图及井位操作的要求。5.界面简单友好:程序界面采用一般操作人员比较熟悉的类似于普遍应用软件的布置格局,尽量使界面风格与常用应用软件相似。采用上边为工具栏、下边为地图操作区域的界面格局,使用户有一种熟悉、亲切的感觉。6.技术推广:程序的开发采用SVG图形格式,本身对使用不够广泛而生命力强大的SVG图形格式也是一种推广,可以让更多的人看到SVG在图象方面的方便、简单、易用性。“基于SVG的油田井位图发布系统”系统开发工具2.1B/S模式B/S是Browse/Server的缩写,它是Internet发展的必然产物。在Browse/Server模式中,客户端运行浏览器软件,浏览器以超文本形式向WEB服务器提出访问数据库的要求,WEB服务器接受客户端请求后,将这个请求转化为SQL语言,并交给数据库服务器。数据库服务器得到请求后,将验证其合法性,并进行数据处理,然后将处理结果返回给WEB服务器,WEB服务器再一次将得到的所有结果进行转化,变成HTML文本形式,转发给客户端浏览器以友好的WEB页面形式显示出来。B/S模式的特点:系统开发、维护和升级的方便性,它对前台客户机的要求不高,避免了盲目进行硬件升级所造成的巨大浪费;B/S模式提供了一致的用户界面,它的应用软件是基于Web浏览器的;B/S具有很强的开放性;B/S模式的结构易于扩展;具有很强的信息系统集成性;灵活信息交流和信息发布服务。2.2J2EE简介JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点:是一种脚本编写语言;基于对象的语言;简单性;安全性;动态性的;跨平台性JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及一浏览器,无须Web服务器通道,通过自己的电脑即可完成所有的事情。J2EE是Sun公司推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。当今许多企业都需要扩展他们的业务范围,降低自身经营成本,缩短他们和客户之间的响应时间,这就需要存在一种简捷,快速的服务于企业,合作伙伴和雇员之间。典型的说,提供这些服务的应用软件必须同企业信息系统(EIS)相结合,并提供新的能向更为广阔的用户提供的服务。这些服务要具备以下的特点:可用性:来满足现在的全球商业环境。全性:保护用户的隐私和企业数据的安全。可依赖性和可扩展性:保证商业交易的正确和迅捷。通常这些服务是由分布的应用程序组成的,包括前端数据端和后端数据源以及它们之间的一层或几层,这些中间层提供了把商业功能和数据与EIS相结合的功能。这些中间层把客户端从复杂的商业逻辑中分离出来,利用成熟的INTERNET技术使用户在管理上所花费的时间最小化。J2EE正式降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被快速的展开,并能够更轻松的面对竞争中的压力。J2EE通过定义一种标准的结构来实现它的优势,如下:J2EEApplicationProgrammingModel一种用于开发多层次,瘦型客户用户程序的标准设计模型。2EEPlatform一个标准的平台,用来整合J2EE的应用程序,指定一系列的接口和方法。J2EECompatibilityTestSuite一套兼容测试组件,用来检测产品是否同J2EE平台兼容。J2EEReferenceImplementation用来示范J2EE的能力。2.3JAVASCRIPT语言介绍2.3.1什么是JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点:是一种脚本编写语言;基于对象的语言;简单性;安全性;动态性的;跨平台性JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及一浏览器,无须Web服务器通道,通过自己的电脑即可完成所有的事情。2.3.2JavaScript和虽然JavaScript与Java有紧密的联系,但却是两个公司开发的不同的两个产品。Java是SUN公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发;而JavaScript是Netscape公司的产品,其目的是为了扩展NetscapeNavigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言,它的前身是LiveScript;而Java的前身是Oak语言。下面对两种语言间的异同作如下比较:基于对象和面向对象Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(ObjectBased)和事件驱动(EventDriver)的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。解释和编译两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。强变量和弱变量两种语言所采取的变量是不一样的。Java采用强类型变量检查,即所有变量在编译之前必须作声明。如:Integerx;

Stringy;

x=1234;

x=4321;其中X=1234说明是一个整数,Y=4321说明是一个字符串。JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其数据类型,如:x=1234;y="4321";前者说明x为其数值型变量,而后者说明y为字符型变量。代码格式不一样Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。嵌入方式不一样在HTML文档中,两种编程语言的标识不同,JavaScript使<Script>...</Script>来标识,而Java使用<applet>...</applet>来标识。静态联编和动态联编Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现对象引用的检查。4XML介绍和HTML一样,可扩展置标语言XML(eXtensibleMarkupLanguage)也是一种置标语言。它同样依赖于描述一定规则的标签和能够读懂这些标签的应用处理工具来发挥它的强大功能。不过,XML这个置标语言可比HTML的功能要强大的多了。XML不但是置标语言,而且是可扩展的(eXtensible)置标语言。XML并非象HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可以根据实际需要定义自己的新的置标语言,并为你的这个置标语言规定它特有的一套标签。准确的说,XML是一种源置标语言,它允许你根据它所提供的规则,制定各种各样的置标语言。这也正是XML语言制定之初的目标所在。2.4.1XML制定的目标1)XML应该可以在互联网上直接使用(*就象HTML那样好用)。2)XML应该支持各种不同的应用方式(*不但包括浏览,还包括对内容的分析)。3)XML应该与SGML兼容(*子承父业嘛,后面我们会讲到,SGML是XML的直接先驱)。4)处理XML文件的应用程序应该容易编写(*计算机系的研究生花上两周的工夫就该差不多了)。5)XML中的可选特性的数量应该减到最小,最好减至没有(*可选特性经常造成混淆)。6)XML文件应该具有良好的可读性,并且比较清晰(*别象HTML那样,如果不借助浏览器,要想读它简直就是对你意志力和耐心的考验)。7)用XML设计新的置标语言应该方便快捷(你不必再去经历标准制定的繁琐程序了)。8)XML设计的置标语言应该正式、简洁(不然怎么易写易读?)。9)XML文件应该容易编制(想想要用“记事本”写个HTML是一件多么可怕的工作)。10)ML标记的简洁性并不重要(你不必再去费尽心机减少标记)。事实上,用XML定义的置标语言可以根据标记描述的侧重点不同分为两大类。一类偏重于语意描述,还有一类偏重于显示方式的描述,象现在已经出炉的XHTML、SVG、SMIL。值得一提的是,这里对于显示方式的描述不仅限于对文本的描述,还可以包括矢量图形、图象、声音。2.4.2XML的发展前景XML自推出以来,尤其是在1998年2月成为W3C推荐标准以来,受到了广泛的支持。各大软件厂商如IBM、Microsoft、Oracle、Sun等都积极支持并参与XML的研究和产品化工作,先后推出了支持XML的产品或者将改造原有的产品以支持XML,W3C也一直致力于完善XML的整个理论体系。XML虽然获得了极大的支持,但是它还有很长的路要走。首先,XML的规则只是迈出了第一步,还有许多技术细节没有解决。其次,现在虽然出现了一些XML工具和应用,但是其市场反应还有待进一步观察。另外如何让更多的人迅速学会使用XML,并利用它进行开发,进而促进XML的应用也是一个问题。因此XML的出现和迅猛发展并不意味着HTML即将退出互联网舞台,由于HTML的易学易用和非常多的工具支持,HTML将在较长的时间里继续在Web舞台上充当主角。但是如果用户想超越HTML的范围,XML将是最佳的选择。另外,由于XML是用于定义语言的元语言,任何个人、公司和组织都可以利用它来定义自己的置标语言(通过DTD或schema表示),这虽然是XML的魅力和灵活性之所在,但同时也是XML的最大问题之所在。如果每个人、公司和组织都定义了自己的置标语言,它们之间的通信就会出现困难。因此在一些领域先后出现了一些标准化组织,它们的任务就是规范本领域的置标语言,形成统一的标准,使得在本领域内的通讯成为可能。但在标准推出并得到广泛认可之前,各自为政的局面将继续下去。更糟糕的是,由于对应用的理解不一致和商业利益等原因,同一个领域也许还有多个标准化组织,它们形成的置标语言并不完全兼容,使得采取不同标准的计算机仍然难以通信。无论如何,XML的出现使互联网跨入了一个新的阶段,它将成为因特网领域中一个重要的开发平台。XML的诞生已经而且将继续促使全新种类的应用程序的产生,而这些新的应用程序又将需要新的软件和硬件工具。可以预测,无论是在软件还是硬件上,XML都将开辟一系列的新市场,促成互联网上新的革命。5SVG语言简介2.5计算机生成数字化图像一般分为两种方法:点位图法和矢量图法.点位图法是把一幅图分成许许多多的像素,每个像素用若干个二进制位来指定该像素的颜色、亮度和属性.矢量图法是用一系列计算机指令来表示一幅图,如画点、画线、画圆、画矩形等.目前,Web页面中大多数图像格式都为点位图格式,比较常用的如GIF和JPEG格式等.点位图具有很多优越性,它能忠实再现摄影图像,其编辑、开发工具种类繁多且简单易用,其图像构造原理直观易懂.但点位图也存在一些固有缺陷,主要表现为:其显示受分辨率影响,Web浏览器须为那些在原始图像中不存在的像素插入或猜测数值;点位图的二进制特性使其难以基于数据库信息动态创建图像;点位图的动画实现也仅限于采用快速连续显示单独图像的方法;点位图需要的存储空间要比矢量图多.。矢量图的图像构造原理与点位图完全不同,矢量图利用点和线等矢量化的数据描述图像,并在图像中包含色彩和位置信息,它有效地克服了点位图的固有缺陷.当显示或输出图像时,图像的品质不受设备分辨率影响,能够提供高清晰的画面,放大和缩小矢量图不会影响图像品质.另外,Web浏览器接收的指令可以与外部信息源(如应用程序和数据库)进行绑定,当要制作动画时,Web浏览器只要接收有关如何操纵属性(如半径或颜色)指令即可.2.5.2可伸缩矢量图像SVG的语法结构是基于XML.,SVG文档本质上就是规范的XML文档。因此,同XML一样,作为W3C的推荐标准,SVG与现有的W3C其他开放标准有很好的兼容性.这些标准包括CSS,XSL,XLINK,SMIL,HTML,DOM,XHTML等.同时,SVG与其他组织的标准化技术也能很好地协同工作,如URI,URICODE,SRVG,ECMASCRIOT/JAVASCRIPT,JAVA,ICC,等通过与这些开放标准的兼容和与其他组织标准化技术的协同工作,除了能绘出矢量图像外,我们还能基于SVG开发更多新功能以提供更多网络服务.例如,制作智能化数据图像,图像中的数据可以根据需要,由应用程序读取、修改和统计并最终在图像中显示,这些应用是目前HTML及相关图像技术远不可及的.SVG作为一种XML文档,它是一元(文本)格式,因此,SVG图像具备以下特点:不同于目前常规的图像,SVG图像中的文字是文本格式.因此,SVH中的文字可以被网络搜索引擎做为关键词搜寻,可以真正实现基于内容的图像搜索引擎.SVG图像可以方便地由JAVASCRIPT,PERL,JAVA等程序语言动态生成,从而可以开发在线图像和动画生成系统SVG完全支持DOM,因而SVG以及SVG中的对象可以通过脚本语言接受外部事件的驱动,实现对自身或对其他物件、图像的控制,制作交互式的图像和动画.SVG可跨平台工作,还可解决相关的外部输出、色彩模式、网络带宽等问题.简言之,文本格式使得SVG能与其他技术标准更好地交互和融合总之,文本格式使得SVG能与其它技标准更好的交互和融合2.5.3SVG作为一种新兴的矢量图像格式,目前还无法与FLASH等传统矢量图像的绘图功能相比拟,但其先进的XML特征使它具有天生的优越性,在Web多媒体领域里前景广阔.按照W3C的SVG推荐标准,SVG除了几何矢量图像生成功能外,还具有许多先进的矢量图像生成功能,以下是目前SVG所具有的主要矢量图像生成功能:定义可重用部件在SVG图像构建中,可在文档定义部分内,对某些部分指定以后,调用在图像主体中的标识来创建可重用部件。渐变和滤镜SVG代码可指定沿渐变向量颜色“停止”或颜色点.滤镜是SVG最强大的功能之一,它不仅可实现位图所具有的滤镜效果,而且由于其基于XML的文本化特征,其滤镜效果可任意修改、替换和删除.。坐标变换默认的坐标系统以用户代理(通常为Web浏览器)左上角的点(0,0)为原点,其正的x轴向右,正的y轴向下.在SVG中,还可通过某些变换操作创建新的坐标系统。.路径和曲线利用路径命令可创建作为图像一部分精确定义的形状,动画或文本也可以被设定为沿某一特定路径前进。目前,SVG中路径命令可以创建3种曲线,即椭圆曲线,三次贝赛尔曲线,二次贝塞尔曲线。6)动画和交互性动画一般通过更改对象属性来实现,SVG也不例外,SVG定义了专用与动画的5种元素,既animate,animateMotion,animateColor,animateTransform,set。SVG可以通过捕获某些事件来启动脚本以实现交互性,最常用的有onclick,onactivate,onmousedown,onmouseup,onmouseover,onmousemove,onmouseout,,onload,onresize,onunload,onrepeat。2.5.4SVG目前SVG创作工具还处于开发研制阶段,比较流行的工具有:1)AdobeIllustator9.0AdobeIllustator9.0时目前较为成功的一款结合SVG功能的矢量创作软件。它可进行SVG静态图像创作并可通过JAVASCRIPT实现部分交互功能,但还无法实现SVG动画功能。2)WebDrawWebDraw是JascSoftware研究的SVG专业创作工具,通过直接画布拖拉及滤镜效果模块化组合,WebDraw可以避免手写源代码。目前WebDraw在功能上还比不上AdobeIllustator9.0,但作为为SVG专业创作工具,它必将大有作为。3)IMSWebEngineIMSWebEngine是VirturalMechanics开发的网页创作软件,主要用于创作HTMLDHTML,SVG页面,其精灵向导(numen)可以定义简单的SVG动态交互动作,WebEngine目前最大的不足是灭有提供源代码视图,因而无法直接进行源代码的修改和编辑。除此还有一些开发工具,像W3C的Amaya等。但目前现成的SVG创作工具只能实现SVG静态图像和简单交互功能。因此,用户为了实现功能强大的SVG矢量动画功能,还需通过手工编辑SVG文档来实现2.6ORACLE简介ORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。2.6.1ORACLE1)、ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。2)、提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。3)、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。4)、提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。5)、提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。2.61、物理结构ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。下图为ORACLE数据库扩充前后在硬盘上存储结构的示意图:2、逻辑结构ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。下图为ORACLE数据库逻辑结构与物理结构的对照关系:2.6.31、原理物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单个的大数据库。用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的:开发人员无需关心网络的连接细节、无需关心数据在网络接点中的具体分布情况、也无需关心服务器之间的协调工作过程。下图为ORACLE分布式数据库原理示意图:2、过程由网络相连的两个ORACLE数据库之间通过数据库链接(DB-LINKS)建立访问机制,相当于一方以另一方的某用户远程登录所做的操作。但ORACLE采用的一些高级管理方法,如同义词(SYNONME)等使我们觉察不到这个过程,似乎远端的数据就在本地。

数据库复制技术包括:实时复制、定时复制、储存转发复制。对复制的力度而言,

有整个数据库表的复制,表中部分行的复制。在复制的过程中,有自动冲突检测和解决的手段。第3章“基于SVG的油田井位图发布系统”系统分析3.1需求分析基于SVG的油田井位图发布系统的是开发井数据库项目中的一个重要的模块,目的是在SVG格式的油井分布图中轻松的实现大量井位数据的动态加载;进而利用SVG图形的特性方便的实现井位信息的定位和利用。首先利用SVG建立某一地区的油田坐标信息描绘,然后从数据库中抽取该地区所有油井的井位坐标信息,并通过某种的方式将这些井位信息绘制到SVG地图中;通过SVG地图放大、缩小、移动、查找文字等功能实现井位信息的查询。要实现上述功能,首先要熟悉SVG这种环境中图形及图象的生成方法,在这个题目要制作的是一张可放大、缩小、能够实现移动、查找文字等功能的地图,因此涉及到地图的制作问题,手工描绘是一种方法,但是对于需要表示区域较广,包含细节信息较多的地图来说,工作量是十分惊人的,因此这种方法不可取,另外一种方法是利用一种脚本语言来生成图形绘制的方法,通过语言来控制生成图象,这样不但图形准确,也减少了很多工作量。在《XML完全探索》这本书中,我决定利用JAVAScript同SVG结合的方法来实现地图的制作。以下是我的简单的设计思路:首先我的工作环境是在WindowsXp操作系统下;Oracle9i软件开发环境;其次涉及XML,javascript,SVG技术以及一些数据库技术。利用JAVASCRIPT和SVG技术制作出一幅带有放大、缩小、移动、查找文字等功能的地图,然后利用数据库技术实现大量井位数据的动态加载,需要加载的数据信息包括油井的坐标、类型、所属单位等相关信息。完成后能够使用户以浏览器的方式打开井位图并对地图上的元素进行操作。2可行性分析根据软件工程理论,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。这一步在入软件开发过程中占有重要的地位,如果系统不可行,那么后继的一切工作都是徒劳的。需要指出的是可行性研究的目的不是解决问题,而只是确定问题是否值得去解决,是否能够解决。可行性研究从软件开发的技术可行性、经济可行性等角度进行考虑。本文的基于SVG的油田井位图发布的设计与实现基于SVG平台,主要应用JAVASCRIPT、SVG和XML等技术。大有XML取代HTML的趋势,其发展前景是十分乐观的;SVG技术是最近兴起的一项技术,其运用现在已经显现出其强大的生命力,得到了广泛的关注及推广。各种开发工具及应用软件也不断商业化,其发展前景是不可限量的;SVG技术是基于XML技术的,其语法结构是符合XML规则的,是XML的一个运用。而且SVG技术支持对各种脚本语言的引用,从而使其功能更加强大,运用更加广泛,其发展是不可阻挡的!。JAVASCRIPT技术是目前比较流行也是十分成熟的脚本语言,使用它可以实现与SVG的动态交互,它可以对用户的输入做出响应,它对用户的反应响应,采取以事件驱动的方式进行。JavaScript依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。用SVG+JAVASCRIPT来实现井位图发布与加载完全可行。目前,XML技术已经走向成熟。它与HTML相比体现出众多优势,现在的各主要浏览器都支持它,在本课题中,主要利用XML在语义方面的优势,将制作好的井位地图,存储为XML格式。在经济上,鉴于井位图发布与井位操作过程中所起的重大作用,再企业提高效率,降低成本方面的潜在前景。油田井位图发布系统得到了许多企业的重视和大力支持,在经济完全可行。3.3各功能模块的主要功能1)增加井位的功能:在整个油田井位图发布系统中,井位标记及相关信息的加载是一个非常重要的功能模块。本课题的大多数工作量也在这里,设计此功能模块的主要目的在于能让用户更直观的了解井位信息,方便用户的操作,使用户与系统达到一个较好的人机交互的效果。在这个功能中还包含着多种图形的添加,比如圆形、矩形和椭圆。这也是为了方便用户区分不同的油井。2)选择井位功能:通过上面的步骤完成后,井位的标记与信息已经完成了加载,此时用户可以对已添加的井位进行选择操作,通常的操作方式是点击选择井位,点击后系统自动连接数据库。3)井位详细信息的查询:当系统自动连接数据库后,用户可以对已经选择的井位进行详细信息的查询,信息以表格的形式战线给用户。4)地图的缩放功能:这一部分功能属于对地图操作的范围,通常对原始尺寸的地图只是大概的浏览,真正要了解地图的更多信息则需要对地图进行不同程度的浏览,放大与缩小功能可以满足用户这一要求。保证在地图不失真的情况下,操作人员可掌握更丰富的地图信息。5)地图的移动功能::这个功能在应用类型上与缩放功能类似,都是操作人员对地图本身的操作,用移动方式浏览地图又增加了本系统可操作性,用户只需要按下“Alt”键的同时在使用鼠标左键拖拽地图的某一点即可。方便用户的同时也丰富了系统的浏览方式。3.4功能模块图根据上述模块划分,我们画出系统的模块图如下(图3.1):3.1基于SVG的油田井位图发布系统的模块图第4章基于SVG的油田井位图发布系统的设计及实现通过前面的系统分析与总体设计,我们已经对本系统的基本功能与实现方式有了一定的了解,在这一章里,我们将讲述基于SVG的油田井位图发布系统的各功能模块是怎么实现的。4.1数据表结构的描述此系统既然是一个能够独立运行的软件系统,必然具有完整的数据库来源,有了丰富的数据库资源才能支持系统核心部分的运行。因此,数据库计是系统设计过程中比较重要的一步。在软件开发过程中要多次用到数据库,因此数据库的设计要与系统设计相结合,使其能够把系统中的各个数据表组织起来,使系统能够方便、及时、准确的从数据库中得到需要的信息以及准确的将需要的数据分类重新存储到数据库新的表中。此外,通过数据库可以创建表之间的持久关系和存储过程,建立字段和记录的有效性规则。下面介绍一下数据库设计过程。本系统中数据库包含的具体表结构设置如下:字段名称类型说明wellname文本井位名称coordinateX数字井位X轴坐标值coordinateY数字井位Y轴坐标值type文本油井类型creattime数字创建时间condition文本目前状态Servicediary文本维护日志4.2界面的设计与实现4.2.1界面介绍根据上一章的总体设计我们知道,本系统只需要一个界面即可。系统的主界面主要包括以下部分:工具栏:实现各种功能的系统界面区域;信息栏:用于显示在地图上的井位信息,并方便用户对其信息进行查看;快捷键:用户点击相应的快捷键,就可以在地图的区域添加井位,并且在信息栏中产生井位的相关信息,点击“增加井位”按钮可自动连接数据库并调用相关的井位信息。因此,此快捷键包含查看和调用两个功能。地图区:用户将在地图区浏览总体概况。在该区域用户也可以通过放大、缩小、移动等功能来实现对地图详细情况与信息的浏览。在此区域内,当用户完成增加井位的的操作后,便可在地图相应的坐标点上找到该油井的图例和井名。并能够连接数据库相应信息发边用户对信息查看。模型定制的主界面如下:图4.1油田井位图发布系统主界面4.2.2快捷键介绍系统快捷键部分包括用三种实现系统功能的按钮。用这三种按钮就基本实现了功能模块图中的几种基本功能。上图中,三种功能按钮为:显示地质信息、增加井位、查询详细信息。它们可以用SVG语言定义好,在用户点击按钮时调用函数动态生成。它们详细SVG定义语句及语义如下:1显示地质信息图符:定义显示地质信息的SVG语句:<inputtype="button"value="显示地质信息"name="BGeologic"onclick="switchGeologic()">语义:点击此按钮后在地图区又会覆盖一层新的图象,按钮名称为“显示地质信息”。调用函数“switchGeologic()”后在原有的地图上显示了油层分布的图象信息。这里的图象覆盖是指重叠,原来的底层图仍然可见。2增加井位图符:增加井位按钮的SVG语句:<inputtype="button"value="增加井位"name="BWell"onclick="addWell()">语义:点击名称为“增加井位”的按钮后,调用了函数"addWell()",此时在地图区域包含的所有油井将一个图标的方式显示在地图上,在地图原始大小时可能由于标记尺寸太小而不容易辨认,只要使用地图的放大功能就能更清楚地显示标记的位置。3查询详细信息图符:查询详细信息按钮的SVG语句:<inputtype="button"value="查询详细信息"name="chaxun"onclick="chaxun(wellinfo.value)">语义:此按钮定义了按钮名称“查询详细信息”并同时调用了函数"chaxun(wellinfo.value)"。此函数调用了数据库文件,包括被选中油井的一切详细信息。4.3各功能模块的实现4.3.1添加井位1)添加图形元素当点击“增加井位”的按钮时会在地图区域的相应位置显示出一个红色圆点。此红色圆点代表一口油井,地图上还有若干个这样的红色圆点,在圆点旁边还有此油井的井名,通过SVG语言可以表现出各种图形,在这里使用了圆形作为标记,那么如何使用SVG语言实现图形描述呢?关于圆形的代码如下:<svg><circlecx=”4cm”cy=”2.4cm”r=”1.5cm”style=”fill:red;stroke:none;stroke-width:0.1cm”/></svg>同样道理,其他形状也可添加;关于矩形代码如下:<svg><rectx=”3cm”y=”1cm”width=”4cm”height=”2cm”style=”fill:black;stroke:none;stroke-width:0.1cm”/></svg>关于椭圆的代码如下:<svg><ellipserx=”70”ry=”40”cx=”150”Style=”fill:green”/></svg>此系统中添加井位时显示的圆形SVG元素采用调用函数的方法来实现。<circlecx='<%=zbx%>'cy='<%=zby%>'r='1000'fill='<%=jbColor%>'/> <gtransform='translate(<%=zbx%><%=zby%>)'> <gtransform='matrix(100-100)'> <textx='40'y='0'font-size='4000'stroke='#000000'> <%=jh%>添加SVG元素后在地图上的显示效果如下图:井位标记井位标记图4.3显示井位标记界面2)增加井位事件的实现虽然有了利用SVG语言添加图形元素的方法,但这样只是界面的制作及实现,还需要利用Javascript对增加井位事件进行编译。在这里声明了函数addWell()。此函数代表增加井位,通过对井位坐标的计算来调用相应的函数值,依据变量来计算出添加的油井的具体位置,实现此事件的关键代码如下:functionaddWell(){if(xmlDoc!=null)return;varthesvg1=basemap1.getSVGDocument().documentElement;vartheView=thesvg1.getAttribute("viewBox").split("");varx2=theView[0]*1+theView[2]*1;vary2=theView[1]*1+theView[3]*1;vartheJsp="getWellList1.aspx?x1="+theView[0]+"&y1="+theView[1]+"&x2="+x2+"&y2="+y2;4.3.2选择井位功能的设与实现1)点击选择井位当完成上一步的工作时,地图上显然已经有了被加载的井位图标。此时如果使用鼠标左键单击井位标记,系统则会自动连接数据库,调出该口油井所包含的详细信息。当点击井位标记时,在Javascript中属于onclick事件,于是在这里声明了名为selectWells(x,y,w,h)的函数。在此定义了井位信息的查找范围及定位方式。当然,只有将SVG数据转换为一定格式的XML文档存储,系统才能自动连接数据库,采用XML作为模型存储格式有一个好处:因为它在数据交换方面具有强大功能。实现点击选择井位的关键代码如下:functionselectWells(x,y,w,h){if(xmlDoc==null)return;wellinfo.value=x+","+y+","+w+","+h;vartheExp="number(@cx)>="+x+"andnumber(@cx)<="+(x*1+w*1)+"andnumber(@cy)>="+y+"andnumber(@cy)<="+(y*1+h*1);vartheNodes=xmlDoc.selectNodes("/g/circle["+theExp+"]");vartheWells="";for(vari=0;i<theNodes.length;i++)4.3.3地图控制地图的放大与缩小要实现在SVG中的缩放,首先要澄清SVG的成像原理及成像特点。矢量图的图像构造原理与点位图完全不同,矢量图利用点和线等矢量化的数据描述图像,并在图像中包含色彩和位置信息,它有效地克服了点位图的固有缺陷.当显示或输出图像时,图像的品质不受设备分辨率影响,能够提供高清晰的画面,放大和缩小矢量图不会影响图像品质。那么SVG是通过何种方式实现的不失真的矢量图象呢?在SVG的窗体定义中通常含有这样一个属性“viewBox”。“viewBox”属性的作用是规定视口的坐标范围。范围重新定义后,缺省的坐标度量单位也会改变。其次,可以利用SVG中的伸缩变换元素“scale”。坐标伸缩变换的形式是:transform=“scale(sx,sy)”。其中“sx”和“sy”分别代表X轴方向和Y轴方向拉伸和缩小的比例因子。大于1是拉伸,小于1是缩小。此功能的实例代码如下:<gtransform=“scale(1.5)”><gstyle=“fill:none;stroke:red;stroke-width:3”<linex1=“0”y1=“0”x2=“100”y2=<linex1=“0”y1=“0”x2=“100”y2=</g>还有一种在数学方面的计算方法,即矩阵算法。因为从数学上讲,坐标变换就是矩阵计算。矩阵变换是坐标变换的通用形式。平移、拉伸都是矩阵变换的特殊形式。一个二维坐标系的矩阵变换式为:地图的移动操作对于地图的移动操作其实本质就是SVG中的平移变换。在此利用了SVG中的一个关于平移的关键元素“translate”。实现方法与缩放的功能实现类似。也是通过对各种图形的起始和终点坐标定义后来决定移动方式。在这里就不详细介绍。4.3.4查询详细信息这部分功能与SVG的相关知识基本无关。但是此井位图发布系统是作为一个独立的可以自行运行的系统。因此它必须具备完善的数据库系统作为数据支持,本课题由于时间有限以及石油工程方面的专业知识的缺乏,并且此处并非本题目的技术重点,因此详细井位信息的数据表由我自己自行制作,以能够说明问题为原则,象征性说明了此处的功能。主要的实现方法是在VB.NET的环境下利用VB语言编写了一段将界面实时操作与数据库连接的代码。此处利用一部分SQL语句,通过对详细数据表中的一些关键字段的查询来起到调用该井位详细数据的作用。在这段代码中主要调用这几个关键字段:“wellname”、“coordinatex”、“coordinatey”、“type”等。当点击井位标记自动打开数据信息后,会出现下面的界面:上表分别定义了井名、地图上横坐标、地图上纵坐标、油井类型、创建时间、目前状态和维护日志。4.3系统测试在开发大型软件系统的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免的会产生差错。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价太高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产性运行之前,尽可能的发现软件中的错误。软件测试是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。测试软件有两种方法:如果已经知道了软件应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道软件内部工作过程,可以通过测试来检验软件内部动作是否按照规格说明书的规定正常运行。前一个方法为黑盒测试,后一个方法称为白盒测试。下面为图形编辑器的黑盒测试过程。在油田井位图发布系统中,我主要采用黑盒测试法,对其基本功能进行测试。黑盒测试法就是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。我设计油田井位图发布系统的功能主要有:添加井位、选择井位、控制地图和查询详细信息。测试过程就是把发布系统的各种基本功能都操作一遍,观察各种功能的实现情况。打开此程序,点击增加井位,在地图区域的相应坐标位置就会出现一个圆形红点,如果是地图的原始尺寸也许不容易观察到,经过特定区域的放大后便可以清晰地看见该井位的SVG元素标记。单击“显示地质信息”按钮,在原有的底图上会自动铺上一层图象,此图象显示了油层分布的图象信息。它与底层图重合,并不是覆盖底层图。当对地图进行控制时,按住“Ctrl”时并同时用鼠标左键点击想要放大的区域,地图以不失真的效果放大地图,显示了更多的地图信息。并能通过此功能查询一些地理位置。或在地图上单击鼠标右键来选择“放大显示”或“缩小显示”。在对地图进行移动操作时,可以按住“Alt”键,这时鼠标的光标在地图上显示的是一个手的形状,此时点击地图进行拖拽就可以实现地图的移动了。点击增加后的井位标记,弹出此口井的信息数据表。第6章结束语毕业设计是大学的最后一课。在这一课中,我第一次将书本上的知识和实践联系起来。我们学习用于实际工作的软件、技术和方法。我们从理论上升到实践。虽然,这个过程中我们磕磕碰碰、跌跌撞撞,但是,这毕竟是个美好的开始。在这个过程中,我学到的了不少的东西,而且有一些是在课堂上学不到的。我知道了什么是SVG,我用JAVASCRIPT语言灵活的操作着这种新兴的图形新贵。我了解了油田工作流程,知道这样一个技术怎么为人类服务。我对XML技术有了初步的了解,知道了这个功能强大的技术将给计算机界巨大的影响。所有这些,将对我继续以后的工作学习奠定了良好的基础。在毕业设计过程中,通过自己查阅参考书和请教导师,我解决了不少技术难题,这大大的锻炼了我分析问题、解决问题的能力。毕业设计的过程是我学习和成长的过程,同时也是解决困难、自我暴露缺点的过程,如在技术方面,由于我对XML,

温馨提示

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

评论

0/150

提交评论