摘 要:mapgis系统不仅是一个gis基础软件,而且是用户在实际应用中面向具体领域的工具,该方案是基于mapgis平台下对油田的站数据进行及时动态更新,从而监控油气管道设备及检测设备的情况,可用来管理大型的网状设施,该方案具有通用性,实时性等特点,较好的满足了管网状设施在监控方面的需求。
关键词:动态监控;数据;mapgis;地理信息系统
1 mapgis-ims介绍
依托地理信息系统的动态数据监控按照地理信息系统软件工程的思路和方法,利用gis技术,依托中地数码成熟的gis平台,建立在
新一代的面向网络的超大型分布式地理信息系统基础之上。采用面向服务的设计思想、多层体系结构,实现了面向空间实体及其关系的数据组织、高效海量空间数据的存储与索引、大尺度多维动态空间信息数据库、三维实体建模和分析等功能,并具有tb级空间数据处理能力,可以支持局域和广域网络环境下空间数据的分布式计算,支持分布式空间信息分发与共享,网络化空间信息服务,能够支持海量、分布式的空间地理信息系统基础设施建设。
我们运用开发平台是mapgis_ims7.0. 它是建立在internet 上的具有四层体系结构的webgis系统。它的主要任务是建立webgis 服务器,在网上发布地理信息,让人们在网上享受更多相关的地理空间信息。
1.1 mapgis-ims 基本原理
(1)首先,设计一个可以交互的web页(可以应用、asp、jsp等),通过此web页,向web服务器提交有关gis服务的请求;
(2)此请求会包含对地图数据的请求,包括查询等,请求会通过web服务器提交给gis应用服务器;
(3)gis应用服务器可以使用几种技术,cgi、com、java applet或者.net技术、web service技术,通过这些组件包装已有的gis软件,获取客户端的请求,将用户需求转化为具体的操作,返回需求的数据(一般是一个地图图片或者查询的数据集);
(4)web服务器获取了gis应用服务器返回的图片,然后作为一个web页返回给客户。其基本原理如图1所示:
1.2 mapgis-ims 数据管理
1.2.1 空间数据库
空间数据库是指gis在计算机物理存储介质上存储的与应用相关的地理空间数据的总和,一般是以一系列特定结构的文件的形式组织在存储介质之上的。在mapgis中空间数据库的管理将利用mapgis空间数据引擎进行存储,以实现对数据模型的定义、管理、维护和存储。数据库中不仅存储地理要素的属性数据,还有描述地理要素空间分布位置的空间数据。
1.2.2 网络空间数据库
对于webgis来说将使用网络空间数据库,它的建立是实现空间数据分布式管理的核心基础。为了实现空间数据存取的设备无关性、位置无关性,mapgis从软件结构上,把数据管理功能独立成一个功能层,所有的数据存取均通过该功能层。在该功能定义了工作区的概念,并在此基础上,定义了对空间实体相关的各种数据进行添加、删除、更新、检索、判断等操作,这些概念和操作通过api函数接口反馈给上层程序。mapgis数据管理层向上提供工作区概念以及相关接口,向下则通过数据转换程序对其他gis系统实现数据交换,通过本地数据管理程序实现存取本地空间数据文件,通过空间数据库引擎存取网络数据。如图3所示:
2 关键技术
2.1 ajax engine层
与传统的web应用开发方式比较,系统在浏览器端添加了一个层——ajax engine,由用户产生的页面事件交由这个引擎处理,它负责向服务器发送请求,服务器传回的是旅游信息业务数据而非html,引擎接受之后,进行渲染,通过浏览器的解析在页面上显示出来。也就是将事件监听与页面渲染的工作交给了浏览器,而后台服务器只负责业务逻辑的处理。
在ajax engine方式下,http基于请求/响应的范式仍然没有变化,但是在有xmlhttprequest对象(ajax engine的核心)的支持下,由服务器解析游客的请求再进行事件发配,之后返回刷新到用的html页面。在新的方式下,由于事件的监听和处理在浏览器内部实现,它的反应周期可以被缩短,事件的处理力度可以更方便的做到更细,而且由于支持异步方式发送request请求和接受response响应,用户事件的控制有了更大的灵活性。
2.2 javascript技术
javascript是一种基于对象和事件驱动并具有安全性能的脚本语言。使用它的目的是与html超文本标记语言、java小程序一起实现在一个web页面中链接多个对象、与web客户交互,从而开发客户端的应用程序。它是通过嵌入或调入在标准的html语言中实现的。它的出现弥补了html语言的缺陷,它是java与html折衷的选择,具有简单性、动态性、安全性和跨平台性。
2.3 vml技术
vml的全称是vector markup language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途。vml相当于ie里面的画笔,能实现你所想要的图形,而且结合脚本,可以让图形产生动态的效果。vml是微软1999年9月附带ie5.0发布的,在本方案的设计过程中对于鼠标交互操作的部分代码就是用vml完成的。
vml 以最简洁的标记代码,在web 页快速绘制输出矢量图型(线段、圆形、矩形、圆矩形、矢量图像、曲线、多边形、弧型)、并修饰这些图形的外观效果,如边框、阴影、填充、背景、渐变、箭头、3d 等等。能井然有序地跟html 超文本紧密结合,或搀杂在html 标签内,或把html 标签囊括其中充当内容。几乎支持css2 样式表所有的样式属性(如,宽度、高度、3d-xyz 位置、鼠标形状、裁剪、排版缩进、缩放等等)。
2.4 胖客户端瘦服务器
系统采用强客户端设计,大量的逻辑坐标转换和图片显示拼接的计算都放在客户端,服务器端主要处理旅游信息资源的调度,更进一步处理查询等复杂操作,负担大大减轻了,其承载客户量,服务器速度和质量都有很大提升。解决了超大矢量地图显示慢的问题。服务器端实时地显示一张大数据量的旅游信息矢量地图(如上g的矢量数据)肯定是很消耗资源和时间的,即使是对显示进行了优化,如抽稀地图要素,
3 具体实现
3.1 动态注记设置
在mapgis系统里面,所有的信息都是以要素的数据结构来存储的,每个要监控的管道或设施可以看作是二维平面上的一个点,在出图时作为一个点要素来考虑,在定义数据结构的时候,添加一个双精度字段,来存储监控的值.然后在索引文件中打开这个属性,以便于在图中显示.
3.2 从数据库中读取数据
油田管道在运行的过程中会生成海量数据,而且动态更新很快,油田的行业性质决定了管道及设施的实时性要很强才能具备高度的安全性,以避免重大事故的发生,及时报警.硬件设施从测量设备中每隔30秒读取一次数据,然后写到sql server商用数据库中,主要代码是读取数据.
3.3 利用ajax查询数据
ajax技术最大的有点就是异步传输,异步更新数据可以避免页面的不断刷新,从而便于观察,也保证数据的采集的高效性,最关键的减轻了服务器的负担.主要是利用mapgis封装好的函数,关键代码如下:
function httpgetajaxclass2(url)
{
var result;
var reqobj = new httprequest();
ystatechange = function(){
if(tate == 4){
if( == 200)
result = setext;
else
result = "请求出错\n服务器信息:" + text;
}
else{
result = "数据加载中……";
}
}
("get",url,false);
(null);
return result;
}
3.4 定时更新数据
实时监控最核心的部分是数据的及时更新,本方案提出的解决办法是利用ajax传输数据后,把点要素的地理信息读取出来,然后把地理信息数据库中存储的逻辑坐标通过函数转换成为屏幕坐标,调用更新要素函数,然后再在前台页面调用脚本的setinterval属性实现定时刷新,从而保障了数据的动态监控.
参考文献
[1]吴信才.地理信息系统原理与方法[m].北京:电子工业出版社,2002.
[2]黄杏元.地理信息系统概论[m].北京:高等教育出版社,2001.
[3]韩延峰.即用即查javascript核心对象参考手册[m].北京:人民邮电出版社,2007.
本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/244818.html