郭力娜,崔 展,王晓红
(河北联合大学 矿业工程学院,河北 唐山063009)
随着计算机技术的飞速发展、空间技术的日新月异及计算机图形学理论的日渐完善,GIS技术也日趋成熟,并逐渐被人们认识和接受。然而,当前GIS也处于急剧发展和变化之中,随着技术的发展和市场的扩张,GIS开始与其他IT应用深度融合,信息技术的每一次进步,都会给GIS带来巨大影响,如PC之于桌面GIS,互联网之于 WebGIS等,近几年来在计算机领域出现的“云计算”更是产生了“云GIS”设计构想[1-2]。“云计算”与GIS的结合也成为GIS领域里令人关注的技术方向之一[3]。
把“云计算”纳入GIS领域的第一个应用实例是由ESRI公司开发实现的ArcGIS10,它是第一次将GIS的应用推向了云端[4]。“云计算”的兴起和云GIS的发展,各类信息化建设也进入了新的发展阶段,智慧信息化阶段,如智慧城市、智慧校园,其目的就是提供一个更加广泛、安全、高校和环保的信息化系统。如智慧城市思想领导者IBM公司对智慧校园理念的定义:两个充分,三化三提高。充分利用教学、科研的先发优势,充分利用信息及通信技术,从物联化、集成化、智能化出发,提高教学科研水平,提高学校自身各项管理工作的效率、效果和效益,提高学校影响力,实现教育服务社会的职能,让智慧校园成为智慧城市的有机的一部分[5],为广大师生提供一个全面的智能感知环境和综合信息服务平台,提供基于角色的个性化定制服务;同时将基于计算机网络的信息服务融入学校的各个服务领域,实现互联和协作;进而通过智能感知环境和综合信息服务平台,为学校与外部世界提供一个相互交流和相互感知的接口。智慧校园的发展还离不开一个硬件设备,即移动通讯设备终端,而目前在移动通讯设备不断更新换代的今天,发展智慧校园的这一硬件基础已基本具备。
基于上述发展趋势和新技术,为更好开拓GIS产品,本研究试借鉴利用云计算技术,依托手机智能系统Window Phone平台,并结合GIS技术,设计手机校园GIS系统,以其为智能校园建设提供一定参考和借鉴。
本设计预计完成的主要工作包括:(1)设计系统框架(采用WCF数据服务模式);(2)实现WCF框架下客户端对服务端数据的访问及操作;(3)实现手机端与GIS服务器ArcGIS Server10的信息交互。
本系统数据存放分为两种:一是属性数据,二是空间数据。空间数据类型包括地图中的点、线、面等空间实体的图形表达。本系统的空间数据比较简单,主要是通过ArcGIS Desktop 10.0矢量化的校园地图。属性数据又分为三种存储方式:1)保存在网站云端的数据(如校园新闻);2)保存在手机独立存储空间上的数据(如课程信息);3)来自于Google发布的 Web Service Reference数据(如天气数据)。
数据库概念模型的表示方法很多,本系统设计中主要应用的是实体联系模型(E-R模型),数据库的表结构见图1。
本系统主体功能主要包括校园新闻模块(通过校园新闻模块用户可以时时获得校园里的最新动态)、课程安排模块(用户可以使用这个小模块查看、记录一周的课程安排信息)、校园地图模块(通过地图让用户更直观地了解校园)、我的日记模块(用户随时随地能够记录自己的学习生活,将数据保存到 WCF远程数据端)、最近天气模块(利用Google API查询最近五天内的天气情况)等5个方面。设计的手机校园GIS系统用户是在校师生,尤其是大一新生,目的是让大一新生更快地适应新的大学生活。本系统框架结构与功能模块划分见图2。
(1)开发环境的搭建。本系统开发需要安装两个关键开发工具:1)微软 Windows Phone Developer Tools;2)ArcGIS API for Windows Phone。这两个工具可以到相应专业网站下载安装。
(2)开发所用软件平台/技术。主要有 Visual Studio 2010旗舰版、ArcGIS Desktop 10,ArcGIS Server 10,ArcGIS API for Windows Phone,SQL Server 2008和 Microsoft Express Blend4。
本系统开发用到的主要技术有 Windows Phone[6-7]结构和技术、WCF数据服务框架、XML数据存储格式、Json数据传 输、REST 风 格的 服 务[8-9]。基 于 Windows Phone平台,以WCF为开发框架,并利用它来提供远程数据服务,用相应的方法对数据进行增、删、改、查等操作,同时进一步简单模拟云端;对于在手机独立存储空间中保存的部分数据采用XML格式文件存储;从其他网站获得的数据分为XML格式和JSON格式两种,用到REST(Representational State Transfer表述性状态转移)针对网络应用的设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性[10-15]。
矢量化校园地图用ArcGIS Server 10进行发布,使用ArcGIS for Windows Phone API进行开发,进而访问 GIS服务器,浏览GIS服务器发布的MapService,RoutingService和GeometryService等服务来进行空间查询。通过Google发布的天气预报Web Service访问其天气数据,并进行一定的美工将获得的天气数据展现在手机上。
数据库主要通过SQL Server数据库进行数据建库和数据存储,地理信息系统主要采用 ArcGIS API for Windows Phone进行移动端系统开发。
根据设置好的布局和模块划分,经过UI设计美化后的界面见图3。其中“校园手机通”为应用程序名称,“功能表”是本页的页标题,其下是利用 Microsoft Express Blend工具制作的6个ImageButton,分别对应系统的6个模块,用户进入系统后可以浏览和选择想要的系统功能。
校园新闻模块分为两个页面,一个是呈现最近日期的新闻标题,该数据通过查询数据库可得到,对应数据库中的NewsTable表;另一个是新闻内容的详细信息,当用户点击新闻标题时导航致该页面,首先根据所点击的新闻标题查询数据库,然后将返回的新闻详细信息显示到第二个页面中。
考虑到每个人课表的差异性,设计时将该模块的数据保存到手机程序的独立存储空间中。该模块由两个页面组成,一是课程信息浏览,可以通过左右滑动切换看到一周的课程安排,该页的数据是通过读取手机独立存储(手机本地存储)中的XML文件得到的;二是课程编辑页面,如果用户第一次使用该系统,点击“课程安排”会首先跳转到这个页面。
本模块主要是使用 ArcGIS for Windows Phone API进行开发,设计了三种地图服务,一种是MapService,可以进行地图的浏览和地物属性信息的查看;一种是Network Analysis服务,能够进行网络分析;另外一种是GeometryService,可以提供缓冲区服务。地图模块主界面见图4。
Map控件是 ArcGIS API for Windows Phone最基本的控件,所有能够看见的与地图有关的元素都将呈现在这个控件内。但它本身是空的,所以需要给其中添加图层。主要的图层类型有:ArcGISTiledMapServiceLayer,它专门并且只能用于加载ArcGIS Server发布的经过切片的缓存地图服务;与之相对应的有ArcGISDynamicMapServiceLayer,专门并且只能用于加载ArcGIS Server发布的动态地图服务;ArcGISImageServiceLayer,用于加载 ArcGIS Server发布的影像服务。图层中的Url属性是一个地图服务的REST方式的节点,可通过ArcGIS Server的Service Directory查看。本设计中图层的详细信息及关系如图5所示。
ArcGIS API中,提供了许多Task类,来完成一些常见的GIS功能,如属性/控件查询、几何对象的拓扑处理、特定工作流的地理任务等。它们都是已经封装好的Task类,使用起来遵循3个步骤:为某个Task设置所需的相应参数;通过Task对象向服务器发送处理请求;接受服务器端返回的结果。按照上面3步可以完成路径分析功能(见图6)。查看地物信息功能通过手指点选地物查看地物详细信息,该功能主要通过数据绑定实现的,即将选择的地物的Name属性绑定到InfoWindow的text属性上显示(地物查看实现见图7)。模糊查询功能通过用户输入的查询关键字查询所要查找的图层的相关属性字段的值,将设置好的FindParameters参数通过FindTask发送到服务器端进行分析,将符合条件的地物要素以FindTask对象返回到客户端,实现界面见图8。缓冲区查询就是利用QueryTask的空间查询功能完成的,实现界面见图9。
登录可以使用该模块,该模块由5个页面组成,首先是登录页面,有账号和密码的用户可以直接输入用户名和密码登录,没有注册的可以点击注册跳转到注册页面,当用户成功登录或者成功注册后就会跳转到日记列表页面,该页面呈现用户的所有日记,该页面下有3个按钮分别为添加日记、返回、帮助。
该模块主要通过获取Google发布的天气预报Web Service Reference利用Google公布的API来实现的。模块由四个页面组成,首先进入的是城市天气列表页面,用户在这个页面可以看到自己所选择的所有城市的当日天气情况,点击图片按钮首先是加载一个Loading页面,加载完数据以后就会跳转到所选城市的详细天气情况页面,该页面会呈现今天天气的详细信息和未来四天的天气情况,在城市天气列表页面有编辑城市按钮,点击会跳转到城市编辑页面,用户可以在该页面添加删除城市。
(1)关于开发平台的选择。目前手机操作系统众多,本次设计选择了Windows Phone为开发平台,基于以下几方面的考量:1)微软的云+端战略。Windows Azure是微软自己的云平台,抛开其优劣,有一点可以肯定的是,它是微软重金打造的战略平台,在未来数年内会主导微软其他产品的发展方向,微软会不遗余力的推广它。2)Windows Phone上有两种开发架构,Silverlight和XNA。Silverlight和 WPF是微软下一代的开发技术,而XNA是微软XBOX平台上的游戏开发技术。可见,不论是Silverlight程序还是XNA的程序,基本上拿来就可在 Windows Phone上运行,效果不打折扣,这得益于微软统一的平台策略。对于熟悉Silverlight或WPF的开发者来说,Windows Phone的开发门槛几乎为零。
(2)关于开发移动GIS产品。GIS技术固然有其独特的理论基础,但GIS的实际应用离不开IT技术,GIS应用的发展更离不开主流IT技术的发展。GIS技术的应用,从C/S到B/S,从SOAP到REST,从SOA到云,都印证了一说法。从台式机到笔记本,从上网本到平板电脑和遍地开花的智能手机,移动不仅是IT技术的发展趋势之一,也是所有硬件的发展趋势。
云计算的兴起和云GIS的产生将服务端和客户端这种开发模式推向了新的高潮,而随着智能手机和平板电脑的普及都预示着移动不仅是硬件的发展趋势更是IT的发展趋势,而且手机随身携带方便,随着智能手机的手机系统功能越来越强大,手机CPU的处里能力越来越强,手机已成了人们生活中不可缺少的一部分。因此以智能手机为移动端的GIS开发将会是未来GIS发展的主要趋势之一。
(3)关于本产品设计。本系统是基于现在比较流行的Windows Phone手机操作,以智慧校园为背景,设计的手机校园GIS系统,虽然系统的功能相对简单,但却是一次对未来智慧校园移动端很有意义的实践,对智慧校园乃至智慧城市移动端开发也是一次有意义的探索。但本设计产品毕竟只是一个移动终端,还是需要依靠强大的服务端,如果学校有比较完备的关于学校设施的GIS数据库,就可以利用移动终端开发出很多实用的功能,方便师生的学习生活。
[1]宋关福.云计算时代的 GIS技术发展漫谈[EB/OL].http://www.supermap.com.cn/sup/xwtxpage.asp?orderID=420,2011-9-6.
[2]李少丹.“云 GIS”的发展趋势分析[D].重庆:西南大学,2011.
[3]ArcGIS云计算专题上线[EB/OL].http://www.esrichina-bj.cn/2011/1222/1623.html,2011-12-22.
[4]云计算及其在GIS中的发展[EB/OL].http://wenku.baidu.com/view/6331eac5bb4cf7ec4afed001.html,2011-12-22.
[5]程艳旗.浙江大学智慧型校园建设探索[EB/OL].http://www.edu.cn/html/info/c/cloud.shtml,2010-12-2.
[6]Windows Phone[EB/OL].http://baike.baidu.com/view/2708518.htm,2012-5-23.
[7]RIA[EB/OL].http://baike.baidu.com/view/706341.htm,2012-3-28.
[8]WCF[EB/OL].http://baike.baidu.com/view/1140438.htm,2012-4-9.
[9]WCF Web HTTP编程模型概述[EB/OL].http://msdn.microsoft.com/library/bb412172.aspx
[10]REST[EB/OL].http://baike.baidu.com/view/1077487.htm,2012-4-10.
[11]面向服务架构[EB/OL].http://baike.baidu.com/view/6545280.htm,2012-5-14.
[12]开放数据协议 OData[EB/OL].http://www.oschina.net/p/odata,2011-6-21.
[13]OData[EB/OL].http://baike.baidu.com/view/3358034.htm,2010-3-22.
[14]JSON[EB/OL].http://baike.baidu.com/view/136475.htm,2012-5-30.
[15]可扩展标记语言[EB/OL].http://baike.baidu.com/view/63.htm,2012-5-23.