基于SVG的油田井位图发布系统.docx
《基于SVG的油田井位图发布系统.docx》由会员分享,可在线阅读,更多相关《基于SVG的油田井位图发布系统.docx(40页珍藏版)》请在冰豆网上搜索。
基于SVG的油田井位图发布系统
摘要
基于SVG的油田井位图发布系统的是开发井数据库项目中的一个重要的模块,目的是在SVG格式的油井分布图中轻松的实现大量井位数据的动态加载;进而利用SVG图形的特性方便的实现井位信息的定位和利用。
本文主要是在B/S模式下利用SVG(ScalableVectorGraphics可升级矢量图像)和Javascript技术实现油田坐标系统中大量井位信息的动态、快速加载,方便用户对井位坐标信息的查找及利用
首先利用SVG建立某一地区的油田坐标信息描绘,然后从数据库中抽取该地区所有油井的井位坐标信息,并通过某种的方式将这些井位信息绘制到SVG地图中;通过SVG地图放大、缩小、移动、查找文字等功能实现井位信息的查询。
然后利用数据库技术实现大量井位数据的动态加载,需要加载的数据信息包括油井的坐标、类型、所属单位等相关信息。
完成后能够使用户以浏览器的方式打开井位图并对地图上的元素进行操作。
关键词:
油田井位图;动态加载;B/S模式;SVG;Javascript
Abstract
oilfieldwellpositionchartissuedthesystemBasedontheSVGisdevelopsinthewelldatabaseprojectanimportantmodule,thegoalisintheSVGformoilwelldistributionmaptherelaxedrealizationmassivewellpositiondatadynamicload;ThenusestheSVGgraphthecharacteristicconveniencerealizationwellpositioninformationlocalizationandtheuse.
Thisarticlemainlyis(ScalableVectorGraphicsmaypromotevectorimage)undertheB/SpatternusingSVGandintheJavascripttechnologyrealizationoilfieldcoordinatessystemthemassivewellpositioninformationtendency,thefastload,convenientusertowellpositioncoordinatesinformationsearchanduse
FirstestablishessomelocalusingSVGtheoilfieldcoordinatesinformationdescription,thenextractsthislocalalloilwellsfromthedatabasethewellpositioncoordinatesinformation,anddrawsupthroughsomewaythesewellpositioninformationintheSVGmap;Enlarges,functionsandsoonreduction,migration,searchwritingthroughtheSVGmaprealizesthewellpositioninformationinquiry.Thentheusedatabanktechnologyrealizationmassivewellpositiondatadynamicload,needstoloaddatamessageincludingoilwellcoordinates,type,subordinateunitandsoonrelatedinformation.Aftercompletescancausetheusertoopenthewellpositionchartbythebrowserwayandtocarryontheoperationtoonthemapelement.
Keywords:
Oilfieldwellpositionchart;Dynamicload;B/SMode;SVG;Javascript
目录
第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井位加载
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脚本语言,可以轻松的实现井位图的生成及控制。
1.2矢量图井位加载
1.2.1XSLT方式
1.什么是XSLT
大家可能听说过XSL(eXtensibleStylesheetLanguage),XSL和我们这里说的XSLT从狭义上理解是一样的,而按照W3C的标准,XSLT的说法更严格些,因此我们在文章中统一使用XSLT的称法。
XSLT的英文标准名称为eXtensibleStylesheetLanguageTransformation。
根据W3C的规范说明书(http:
//www.w3.org/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网站(http:
//www.w3.org/TR/xslt11)上看到。
4.什么是XPath
XPath是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来控制显示。
可以减少响应时间。
1.2.2Javascript方式
在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.事件在表单内部同界面对象的交互。
1.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是