基于Silverlight的二三维联动WebGIS的设计与实现

2014-06-26 07:39闵星曹伟蒋华
城市勘测 2014年1期
关键词:数据服务插件矢量

闵星 ,曹伟,蒋华

(1.天津市测绘院,天津 300381; 2.天津大港油田滩海开发公司,天津 300280)

1 引 言

二维GIS 技术具有成熟的空间分析、数据编辑等功能,三维GIS 虚拟现实更加逼真,因此,二三维一体化研究正好令两者优势互补,成为三维GIS 进一步成熟前一种可行的GIS 应用系统解决方案[1]。本文设计一个二三维联动WebGIS 方案,不仅构建二三维联动机制,实现了二三维的一体化;还能分别作为二维、三维WebGIS 独立运行,实现了二维、三维和二三维联动的“三合一”。

面向服务的WebGIS 已成为GIS 发展的大趋势,富互联网应用技术(Rich Internet Applications,RIA)的出现让WebGIS 愈发得到青睐。RIA 技术缓解了传统WebGIS 胖服务器模式下服务器端的压力,具有更加灵敏的反应速度和更令人感兴趣的可视化特性[2]。本文采用了主流RIA 技术之一的Silverlight 技术,有效平衡了客户端和服务器端负载,明显提高了系统效率和界面的表现力。

2 Silverlight 技术

对于互联网用户来说,Silverlight 是一个类似于Adobe Flash 的插件程序,其下载体积较小(不到2 MB),可以在用户打开包含该内容网站时自动安装。对于开发设计人员而言,它是一种高效、免费、融合了微软多种技术的Web 呈现技术,提供一套开发框架,实现了与ASP.NET、AJAX 等Web 开发环境的无缝连接。相比于其他客户端应用系统实现技术,Silverlight 具有以下优势:

(1)提高了系统效率。Silverlight 程序本质上是将功能包(xap 文件)下载到客户端,充分利用客户端的计算处理能力[3]。

(2)融合于其他Web 应用程序。作为一个客户端插件,可以和现有网站设计融洽共处。与GIS 技术结合,更能将地图功能模块方便地嵌入现有网站。

(3)良好的用户体验。Silverlight 使用Windows Media 技术,可以有效地创造出内容丰富、界面绚丽的Web 应用程序。

(4)支持跨浏览器、跨平台。Silverlight 可以在所有流行浏览器中运行,并能运行于各主流操作系统。

3 系统设计

3.1 系统构建要求

作为城市级别的联动WebGIS 系统,既要考虑二三维联动平台的实现效果,还得考虑与专题数据结合的有效性与灵活性,系统的构建应满足如下要求:

(1)采用网站形式访问,支持多用户并发访问。

(2)数据显示友好,包括二维矢量数据、三维模型数据、二三维联动效果以及专题属性数据的显示。

(3)支持数据动态更新,保持数据的实时性。

(4)支持多数据集成显示,数据源可能以不同的格式来自于不同的服务器、不同的数据库。

3.2 系统总体架构

根据系统构建的要求,总体架构采用如下三层体系模式:数据服务层、Silverlight 页面服务层、用户层,架构设计图如图1所示。

在数据服务层,充分应用Web Service 技术,将对二维矢量数据、三维模型数据、属性数据的访问和操作均作为服务发布;Silverlight 页面服务将在数据服务层提供的服务接口融合到具体的应用系统,并通过xaml、silverlight 基础类库、ArcGIS 及Skyline 开发接口实现系统功能;在用户层,仅需具备Web 浏览器及Silverlight 插件即可。

图1 系统架构设计图

Silverlight 应用程序以网站形式运行,实现多用户的并发访问;RIA 特性能以地图、表格、统计图表等形式更加多样化地展示数据,有效增强了数据显示的友好性;采用的异步机制既能消除数据之间的耦合性、增强系统的共享性,同时又能保证数据获取的动态性以及数据信息的实时性;Web Service 技术的采用不仅解决异构GIS 平台之间的数据集成与共享问题,同时实现数据共享与功能共享的并举[3]。综上所述,架构设计达到了系统的构建要求。

3.3 系统数据库建设

数据服务层是系统架构的支柱,而数据库又是数据服务层的基础。本系统的数据库建设主要包括以下三个方面:

(1)二维矢量数据库,包括基础地形数据和专题矢量数据(管线数据),均以Oracle +ArcSDE 方式存储于各自独立的数据集(Dataset),并通过ArcGIS Server分别以WMS 服务和WFS 服务发布。

(2)三维模型,利用Skyline 的三维建模工具Terra-Builder 将遥感影像和DEM 数据进行读取、转换等处理以创建MPT 三维场景文件。再利用TerraExlporer 基于MPT 场景导入二维矢量地形图层、三维建筑物图层、三维专题图层(管线图层)等,最终生成FLY 配置文件。三维专题图层中实体的坐标信息均来源于二维矢量数据库,保证了三维与二维专题数据的一致性,管点、管线及建筑物等模型均通过Web Service 从服务器读取[4]。

(3)属性数据库,包括专题属性数据和系统数据(用户、日志等),属性数据也是通过Web Service 从Oracle 服务器获取。

4 系统实现及关键技术

4.1 技术路线

系统总体框架上分为二维系统、三维系统、二三维联动系统,应用Silverlight 的Grid 容器,这三部分均可独立运行,并可实现三者之间的实时自由快速切换[5]。开发平台选用VisualStudio2010(C#),其中二维系统功能实现利用ESRI 公司针对Silverlight 开发的免费程序集ArcGIS API for Silverlight[6],三维系统功能实现利用Skyline 的TerraExplorer Pro。虽然Silverlight 并不支持Skyline 的三维插件,但支持向其中嵌入HTML 网页(这里笔者开发了一个基于Silverlight 的小插件,提供URL 即可),再将Skyline 的三维插件嵌入该HTML 网页。鉴于此模式,三维具体功能实现采用TerraExplorer API for Javascript[7],与Silverlight 以及二维系统之间的交互通过C#与Javascript 的交互实现。独立运行的二维系统及三维系统效果图如图2及图3所示。

图2 独立运行的二维系统效果图

图3 独立运行的三维系统效果图

4.2 功能模块

鉴于二维与三维的区别及专题数据的业务需求,本系统中二维系统与三维系统共同的功能模块主要有地图基本功能、快速定位、查询与统计、空间量测、剖面分析等。此外,二维系统独具的功能模块有数据编辑(包括属性编辑和几何编辑)和空间分析(包括最短路径分析、缓冲区分析等);三维系统独具的功能模块则是显示设置(包括阳光、透明度等)和纵深分析(包括挖坑土方量计算、地下管线巡线等)。

4.3 关键技术

(1)数据可视化层面的一致性

二三维联动系统中,通过坐标转换及联动模式下二三维交互时的事件触发机制保证两者地图视图显示的同步,这是数据可视化层面二三维联动的实质[8]。本系统中,二维地图与三维地图均采用国家80 坐标系,在两者的鼠标事件响应函数中以及视窗刷新事件响应函数中均建立了坐标传输机制,通过当前视图的中心点(CenterSign)及当前视窗(Envelope)来控制两者位置变化的一致性。联动模式下,三维地图中视场角(Field of View,FOV)默认为90°,实现效果如图4所示。

图4 数据可视化一致性效果图

图5 空间分析一致性效果图

(2)数据操作层面的一致性

三维平台通过WFS 共享二维平台的矢量数据源,也即是三维地图中的二维矢量图层均对应于二维地图中的某一图层,通过这种对应保证了二三维平台在进行数据查询、空间分析、数据编辑等操作时的数据表现一致性,这是数据操作层面的二三维联动的实质[8]。本系统中,三维平台通过动态数据加载功能实时加载并直观展示二维空间分析的结果,达到了数据操作层面的一致性。效果如图5所示。

5 结 语

本文阐述一个二三维联动WebGIS 系统的设计思路及实现方式,基于Silverlight 技术成功地将当前的主流二维GIS 平台(ArcGIS)与主流三维GIS 平台(Skyline)结合到一起,实现了二三维的一体化,并实际应用于天津市静海县二三维联动地下管线信息管理系统的建设。本文的研究为解决传统WebGIS 系统胖服务器端的弊病提供了思路,同时扩展了WebGIS 系统的用户界面,对促进以网络为载体的GIS 与城市应用服务的发展具有积极意义,为城市级别WebGIS 系统的开发提供了一种新颖、可行的尝试。

[1]高飞,尤磊,阮红利.基于开源项目的二三维联动GIS 系统的设计与实现[J].测绘科学,2009(10):144 ~145.

[2]郭淑芬,于志刚,李成名等.基于Flex 开发综合市情系统的研究与应用[J].测绘通报,2012(10):88 ~91.

[3]罗智勇,罗娟,赖德军.RIA 技术方案下的插件式WebGIS系统架构设计[J].测绘科学,2012(11):160 ~163.

[4]唐桢,张新长,曹凯滨.基于Skyline 的三维技术在城市规划中的应用研究[J].测绘通报,2010(5):10 ~12.

[5]徐晓华.基于Silverlight 的电子地图的研究与设计[D].杭州:浙江工业大学,2009:35 ~36.

[6]ESRI.ArcGIS Resource Center:ArcGIS API for Silverlight[EB/OL].http://help.arcgis.com/en/webapi/silverlight/.

[7]北京东方道迩信息技术股份有限公司GIS 事业部.TerraExplorer Pro 二次开发用户手册V6.1[EB/OL].http://download.csdn.net/download/xslz_grf/4490303.

[8]周顺平,魏利萍,万波等.多源异构空间数据集成的研究[J].测绘信息与工程,2005,30(4):30 ~32.

猜你喜欢
数据服务插件矢量
地理空间大数据服务自然资源调查监测的方向分析
一种适用于高轨空间的GNSS矢量跟踪方案设计
矢量三角形法的应用
自编插件完善App Inventor与乐高机器人通信
基于jQUerY的自定义插件开发
如何运用税收大数据服务供给侧结构性改革
基于频繁子图挖掘的数据服务Mashup推荐
基于矢量最优估计的稳健测向方法
三角形法则在动态平衡问题中的应用
基于Revit MEP的插件制作探讨