APP下载

Silverlight在地理信息系统中的应用

2012-09-22卢云辉黄晓文曹健

城市勘测 2012年2期
关键词:浏览器储罐应用程序

卢云辉,黄晓文,曹健

(1.大连市勘察测绘研究院有限公司,辽宁大连 116021; 2.广州市天河区建设工程质量监督检测室,广东广州 510655)

1 引言

一直以来,大部分开发者都是采用传统的C/S和B/S架构进行GIS开发,C/S架构在客户端的处理能力与交互性较强,但维护性较差;相反,B/S架构在客户端的维护性极高,但对信息的处理能力、交互性、跨浏览器一致性方面都有不足[1]。而且,传统架构下开发出的系统的界面属于简洁实用型,缺乏华丽的视觉效果,难以在第一时间吸引客户的眼球。随着科技发展的日新月异,相当多的互联网企业都采用了最新的RIA技术,如新浪、腾讯、淘宝等。位于地理学和IT行业交集的GIS自然也应跟上潮流,改善界面效果和用户体验。

正是如此,相对C/S架构更为轻型的Silverlight技术就成为未来地理信息系统应用中理想的展现层的候选方案。Silverlight有着更为轻便的运行式环境,无须安装体积庞大的.Net Framework。而在如此小的运行环境下面有着B/S无法比拟的高级语言支持:使用C#高级语言代替JavaScript来实现强大的客户端计算能力,继承了WPF丰富的样式、控件、特效与动画,更可控的浏览器适应性,能够更大程度的为开发人员带来快乐的开发体验。

2 Silverlight的特点

Silverlight是微软于2007年推出的跨浏览器、跨平台的解决方案,能够设计、开发和发布有多媒体体验与富交互(RIA)的网络交互程序。Silverlight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验。同时,Silverlight还提供了强大的工具来提高用户工作效率。

Silverlight将多种技术结合到一个开发平台,可以在其中选择符合需求的合适的工具和编程语言。Silverlight有如下的特性:

(1)跨浏览器,跨平台的支持。Silverlight在所有的流行浏览器(任何平台)运行一致。设计和开发应用程序不需要担心你的用户是什么平台什么浏览器。

(2)可访问.NET Framework编程模型和相关工具。可以使用托管的Jscript和IronPython或者C#和VB这样的动态语言来创建基于Silverlight的应用程序。可以使用Visual Studio这样的开发工具来创建基于Silverlight的应用程序。

(3)WPF和 XAML。Silverlight包含了 Windows Presentation Foundation(WPF)技术,这项技术在创建用户界面时极大地扩展了浏览器元素。WPF可以创建融合图形、动画、媒体和其他的富客户端特性,扩展了基于浏览器的用户界面,超越了HTML所提供的。可扩展应用程序标记语言(XAML)提供了创建WPF元素的声明性标记。

XAML提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和ASP.NET中的“代码后置”模型非常类似。也就是说在开发一个应用程序时,我们可以将开发工作分成开发人员和设计人员两个团体分别进行,各自负责后台程序代码逻辑和前台程序界面的设计,这样就使得开发人员和设计人员之间的协作更通畅,也极大地发挥了他们的专长。[2]

高生产效率是微软技术的一贯特点,Silverlight也不例外,因而如果将它应用到GIS系统中将会大大提高效率。首先,由于WPF是对之前的图形处理技术更高层次的封装,因此可以带来更快的开发速度。其次,WPF支持硬件(GPU)加速,使得渲染图像的速度大大加快。最后,由于Silverlight是以插件的方式运行,使得系统的响应速度也得到了大大的提升[3]。

3 应用项目实例

各大GIS厂商都针对Silverlight推出了相应的开发接口,本文以采用超图公司的SuperMap IS.Net for Silverlight开发的石化应急指挥决策系统为例,来说明Siliverlight在地理信息系统行业中的应用方式。

石化应急指挥决策系统的结构如图1所示,其中综合应用层面就是需要用到Silverlight技术的地方。

图1 石化应急指挥决策系统结构

该系统主要包含综合查询、泄漏分析、消防设施检索、应急指挥等功能。

图2 系统实现过程

(1)查询功能。通过鼠标点击获取地图上一点的坐标,然后根据一定的缓冲范围判定出附近的储罐、有毒有害点、危险区域等待查询的要素,并使该要素高亮闪烁,并弹出框体显示该要素所有被查询的信息。

图3 查询结果

如图3所示,该储罐的查询结果摒弃了传统的表格展现形式,而采用了经Blend修饰过的Border容器为信息载体,使人们对待查询要素的了解更为直观明了。此框体外观可以由美工人员自由改动,实现查询结果展示方式的多样化。

(2)消防设施介绍。利用微软的DeepZoom技术显示数据源为CAD的消防水线图,便于从整体或局部查看消防设施的细节。利用自定义的PDF容器显示存储在服务器根目录下的消防泵站及消防车辆照片,易于查找检索。

图4 消防设施图

(3)应急指挥救援。在地图上实时标注出撤离线、搜救线等指挥线路,利用Storyboard可以通过改变虚线的StrokeDashOffset属性使之具有流动的效果。这样的好处是使指令的表述更加一目了然。在WCF的支持下,决策人员可以在服务器终端画出撤离线,现场的工作人员可以在客户终端及时的接收到直观的指挥信息。

图5 应急指挥设置撤离线示意图

(4)消防扑救措施

根据各联合车间提供的每个装置中比较危险的部位,结合全公司装置的分布情况,选择具有代表性的部位,其中包括液氨、硫化氢、液化气、氟化氢等有毒有害气体泄漏事故,分馏塔、罐等装置事故,制定消防处置措施,作为公司级消防预案。将这些预案以PDF格式存放在服务器根目录下,需要时在相关储罐上右击然后点选“扑救措施”选项,系统会根据该储罐所存物料自动匹配相应的文档。

图6 扑救措施

(5)消防应用计算

根据《低倍数泡沫设计规范》和《石油化工防火设计规范》的规定,对储罐的消防用水和泡沫液的数量按照最低标准设计计算工具,为指挥部的后勤保障提供依据。同时为供排水车间的污水处理提供参考。

图7 计算工具

(6)泄漏分析。点选可能发生泄漏的地点,根据石化公司提供的公式计算出一定量气体的泄露范围,然后通过Storyboard作出扩散的动画效果。

图8 泄漏分析

4 Silverlight在实际应用中的新特性

Silverlight在GIS行业中的应用体现出了有别于传统开发模式的一些新特性。

图9 聚类效果

(1)聚类:石化应急指挥决策系统中包含很多点要素,如储罐、有毒有害点、枢纽井等。由于这些要素的点位分布比较密集,在地图缩小到一定级别的时候,看起来就不太美观。超图的聚类(Clusterer)技术可以让这些点根据设定的聚类半径以聚合的方式呈现在地图上。代码如下:

<icWeb:ScatterClusterer x:Name="Clusterer_Shuniujing_ZLJDJS"Background="Cyan"Foreground="Black" EnableRotation="True"MaximumCount="10"Radius="20"/>

结合SQL查询语句,可以使鼠标移动到"小雨伞"的分支上时显示其属性。

(2)在利用Silverlight设计系统界面的时候,实现一些比较炫目的效果的关键就是动画板(Storyboard)。Storyboard提供了管理时间线的功能接口对不同元素的状态进行改动,即让某元素由一个时间段的某种状态过渡到下一个时间段的另外一种状态,过程就形成了动画效果。

(3)Deep Zoom技术就是在查看很大的一幅图片时仅仅将当前显示在屏幕上的部分发送到浏览器中。同时也可以对图片进行缩放和平移,在加载新的部分时采用了平滑的动画效果,提高了观赏性。优点是不需要花大量时间来下载一幅很大的图片数据而是只下载需要查看的那一部分,提高了效率。

5 总结

基于Silverlight开发的地理信息系统界面美观,效果绚丽,在一定程度上提高了工作效率,在系统的用户体验方面也有了长足的进步。在各大网站都纷纷试水新技术的同时,Silverlight也将在日后的系统开发中成为常用的技术之一。

[1]吴磊.企业级RIA应用与Silverlight开发全流程实战.www.infoq.com/cn/articles/wl-silverlight-light,2011

[2]Lori A.MacVittie.XAML in a Nutshell.O'Reilly,2006

[3]戴宣洋,庹先国.基于Silverlight的GIS组件的研究与开发[J].电脑与电信,2010,11:P41~43

[4]杨正华.城市GIS空间数据共享初探[J].测绘通报,2003(5)

[5]Matthew MacDonald.Silverlight 3高级编程(C#篇).Apress,2009

[6]Todd Anglin.Introducing Silverlight 1.1.O'Reilly,2007

猜你喜欢

浏览器储罐应用程序
大型LNG储罐设计计算关键技术
大型LNG储罐珍珠岩在线填充技术实践
基于地震响应分析的大型LNG全容式储罐储罐基础方案设计
删除Win10中自带的应用程序
反浏览器指纹追踪
谷歌禁止加密货币应用程序
一生清廉
—— 储罐
环球浏览器
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序