基于MAPGIS-IMS下的数据动态监控与实现(2)
2012-08-21 20:42
在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();?
reqobj.onreadystatechange = function(){?
if(reqobj.readyState == 4){?
if(reqobj.status == 200)?
result = reqobj.responseText;?
else?
result = "请求出错\n服务器信息:" + reqobj.statusText;?
基于MAPGIS-IMS下的数据动态监控与实现(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!