今天是  | 加入收藏 | 关于我们 |
 
 
Silverlight技术在构建湖泊水环境信息服务平台中的应用
 
2016年12月13日  点击量:3355
字号:【   】

万晓凌,陆小明,胡金龙,仲兆林

(江苏省水文水资源勘测局,江苏 南京 210029

  摘要:Silverlight是设计、开发和发布有多媒体体验与富互联网应用程序的网络交互程序,是提升互联网用户体验的一项Web技术,Silverlight技术的出现将桌面丰富的用户界面体验带到了互联网。湖泊水环境信息平台实现各部门之间的湖泊信息共享,并可提供丰富多彩的外观和功能,本文通过多个实例介绍了Silverlight技术在构建湖泊水环境信息服务平台中的应用。

  关键字:Silverlight;水环境;信息服务;平台

1 引言

湖泊具有调蓄洪水、净化水质、维持生物多样性、调整流域局部天气的自然功能,还有着为人类提供动植物产品与水资源、为航道运输提供支持、承载湖滨周边居民的生活、是自然景观格局的重要组成部分的经济和社会功能。但近年来随着经济社会的快速发展,人们在开发利用湖泊资源时,忽视了对湖泊资源有效保护和管理,湖泊功能效益不断下降,构建湖泊水环境信息服务平台密切监视湖泊水环境变化,通过网络方式传播,提供丰富、准确、及时的湖泊水环境信息甚至预测预报成果,为区域经济发展、人民生活水平提高,提供优质、高效的湖泊信息服务。湖泊信息是社会生活中一种宝贵的无形资源, 水利、鱼业管理、城市供水与建设、交通、气象等部门都将湖泊信息的获取视为组织建设的重要环节。网络的出现使人们快速交流湖泊信息变为可能,Web环境下通信双方无需理解通信细节就可以方便地交流湖泊信息,从而也能实现各部门之间的湖泊信息共享,因此Web环境下的各部门间的湖泊信息共享研究愈发地显得重要了。另一方面,各部门通过网络媒介发布湖泊信息时,在提供丰富的湖泊水环境信息服务的同时,服务平台的整体的外观和功能同样需要做得丰富多彩。

Silverlight是设计、开发、发布一个富用户体验和富交互应用程序的开发工具,是一种融合了微软的多种技术的Web 呈现技术。它提供了一套开发框架,并通过使用基于向量的图层图像技术,支持任何尺寸图像的无缝整合, Silverlight可与Visual Studio开发环境可无缝集成,用c#vb.net等熟悉的语言进行开发,在Visual Studio中安装插件,来进行开发,从而大大降低了开发成本。

2  Silverlight技术特点

Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互的网络交互程序。因为Silverlight提供了一个强大的平台,能够开发出具有专业图形、音频和视频的Web应用程序,增强了用户体验,所以Silverlight吸引了设计人员和开发人员的眼球。同时,Silverlight还提供了强大的工具来提高他们的工作效率。

Silverlight能创建一种具有很高艺术性的应用程序,具有以下的特点:

1)一种跨浏览器、跨平台的技术。可以在所有流行的浏览器中运行,包括Microsoft Internet ExplorerMozilla Firefox, Apple Safari, Opera,同样可以运行于Microsoft WindowsApple Mac OS X

2)无论在哪运行,都能提供一致的用户体验。

(3)需要下载很小的文件来安装以支持,只需几秒。

(4)用户可在浏览器中直接对其进行控制,可以拖动、翻转、放大的图片。

(5) 它读取数据并且更新外观,但不会通过刷新整体页面来打断用户操作。

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

在该结构中,系统业务逻辑集中到Web服务器上,客户端使用通用的浏览器就可以访问Web服务器,查询湖泊各类信息。该方案直接的好处在于用户使用时不需要或只需安装少量的客户端插件即可完成客户端功能,系统的部署升级、日常维护非常方便。

3 湖泊水环境信息服务平台主要功能实现

湖泊水环境信息与空间位置有着密切的关系,开发与应用湖泊水环境信息服务平台,不仅可以方便地获取、存储、管理和显示湖泊的各种信息, 而且可以对湖泊实现审批、查询、分析、统计、制图、输出和指挥调度等功能,提供一个科学、高效、立体的应用平台, 对实现湖泊管理和决策的法制化、科学化、规范化。湖泊水环境信息应包括水质监测、湖泊水体监测、污染源监控、蓝藻水华监测预警、入湖河流水质水量、湖泊水位与降雨量、气象部门的气象监测等内容,现以湖泊站网、水位及部分水质要素的显示为例,说明Silverlight技术的实现方法。

3.1 湖泊站网信息显示   

湖泊站网信息是湖泊水位、水质要素等其它信息显示的基础,开发湖泊站网信息平台后再加上其它各类信息,就形成了一个完整的信息服务。湖泊站网信息中的站点图标直接用Bing Maps Silverlight Control中的地图图钉控件Pushpin来表示,主要实现步骤有:

◎ 站网信息使用站点类Station来表示,站点类有站名、经度、纬度等信息。

public class Station

    {

        public string  StationName{get;set;}

        public double  Longitude {get;set;}

        public double  Latitude{get;set;}           

    }

◎ 定义全局站网变量listStation

public List<Station> listStation;

◎ 在站网图层上面显示所有站点图标:

       public void ShowStation()

        {

            Pushpin station;

            for (int i =0; i < listStation.Count;i++ )

            {

                station = new Pushpin();                  

     Location location = new Location(listStation[i].Latitude,listStation[i].Longitude);

                ToolTipService.SetToolTip(station, listStation[i].StationName);

                layStation.AddChild(station, location);

                }          

        }

◎ 在MainPage.xaml中添加“站网信息”命令按钮以控制站网信息图层layStation的显示。

<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal" Background="Gray">

            <Button Margin="5" Width="100" Height="30" x:Name="btStation" Click="btStation_Click" >

                <TextBlock FontSize="15">站网信息</TextBlock>

            </Button>

   </StackPanel>

◎ 运行后通过鼠标可任意放大、缩小、移动该图,并可看到各站图标,鼠标停留在站点图标时可显示站点名称,如鼠标停留在滆湖上面时,显示为“滆湖”,效果如图1

1 湖泊站网信息图

 

3.2 湖泊水位过程显示

湖泊水位过程以预测未来的走向,现直接利用现成的提示工具ToolTip来实现,当鼠标停留在上面时会显示水位过程线,在创建站网信息时显示是的站名,现在显示不仅仅一串文字,而是一系列的图表。Silverlight Toolkit提供了多种图表控件,包括柱状图、饼状图等,主要实现步骤有:

◎添加水位提示控件WaterTip,并绑定相应的数据变量,需声明图表Chat控件对应的命名空间的支持。

        定义图表控件的数据源,代码如下:

public List<DayValue> daylevels

        {

            set

            {

                ((LineSeries)(this.cWater.Series[0])).ItemsSource = value;

            }

        }

        项目中添加日数据类DayValue,并定义数据变量listLevel用以存放系列数据:

    public class DayValue

    {

        public string Day { get; set; }

        public double Result { get; set; }

}

public List<DayValue> listLevel;

  ◎ 重新定义站点类,添加水位过程信息ListLevel变量:

  public class Station

    {

        public List<DayValue> ListLevel { get; set; }

        public List<DayValue> ListTP{get;set;}

        public List<DayValue> ListTN{get;set;}       

}

◎ 运行后,当鼠标停留在水位值图标上时,动态显示该湖泊站点的水位过程线,效果如图2

2 湖泊水位过程图

3.3 水质要素显示    

水质要素很多,现选用总磷TP、总氮TN及水质类别Type,在站点类Station的变量中,增加这三个变量。

水质图表提示这里要提示的有TP柱状图、TN折线图,并同时提示,主要实现步骤有:

◎ 添加水质提示控件QualityTip,并绑定相应的数据变量,需声明图表Chat控件对应的命名空间的支持,这里添加了一个折线图和一个柱状图。

  ◎ 重新定义站点类,添加总磷、总氮变量:

 public List<DayValue> ListTP{get;set;}

 public List<DayValue> ListTN{get;set;}

◎ 在显示水质信息图层时,添加提示图表控件:

      public void ShowQuality()

        {

            WaterQuality  quality;

            QualityTip tip;

            for (int i = 0; i < listStation.Count; i++)

            {

                quality = new WaterQuality();

      Location location = new Location(listStation[i].Latitude, listStation[i].Longitude);

                tip = new QualityTip();

                tip.tp = listStation[i].ListTP;

                tip.tn = listStation[i].ListTN;              

                ToolTipService.SetToolTip(quality, tip);

                quality.type  = listStation[i].Type;

                quality.tn = listStation[i].TN;

                quality.tp = listStation[i].TP;

                layQuality.AddChild(quality, location);

            }

        }

◎ 运行后,当鼠标停留在水质值图标上时,动态显示该站点的总氮折线图和总磷柱状图,效果如图3

                      3 湖泊水质要素图

4 结语

Silverlight技术强大的跨平台能力,开发者可以将同一软件应用,部署至浏览器、桌面操作系统、移动设备、电视机、游戏机等不同终端,结合XAML语言强大的媒体描述能力和界面信息描述能力,由服务器端保存并传输界面描述文件,Silverlight运行时在客户端实现媒体表现,减少了信息传输流量,充分利用客户端运算和处理能力,提高网络带宽的利用效率,内建新的3D与动画功能,改善文字使用及支持硬件加速效果,提供几十种种控制功能及程序码,以及各种专业的设计主题等,随着湖泊水环境信息服务的不断拓展、深入,Silverlight以其开发维护成本低、用户体验好,必能实现更多的湖泊信息服务。

信息平台为水利、鱼业管理、城市供水与建设、交通、气象等部门所需要,并将为湖泊的基础研究提供数据,为湖泊及区域水环境治理、水生态修复提供技术支撑和决策依据,建立统一信息发布平台,自动将信息分析结果向不同层次的领导、管理、技术人员分类发送,使相关人员能随时随地了解湖泊水环境信息, 公众也可以随时获得和查询湖泊信息,从而实现共享平台的应用目标,使湖泊水环境信息得到充分利用。

Copyright © 2008-2017  江苏省水利学会  版权所有
地址:南京市上海路5号  邮编:210029
备案号:苏ICP备16020170号-1   技术支持:江苏省时代科技有限公司
累计访问: