基于WebGIS的浙江省旅游气象服务系统沈萍月 冯国标 梁晓妮 单权浙江省气象服务中心,杭州,310017摘 要浙江省旅游资源丰富,旅游事业发展迅猛,对相应的旅游气象服务也提出了更高的要求,本文利用WebGIS技术、数据库技术和分布式技术研究了浙江省的旅游气象服务。
对所研究的旅游景点及背景地图数据进行了整理和入库,并对多源数据进行了数据库设计和数据统一管理。
系统采用B/S面向服务的架构,以ArcSDE For Java开发支撑后台,基于Flex和ArcGIS Server采用多级缓存技术建立了浙江省旅游气象服务系统,实现了旅游景点相关的监测实况、预警预报、景点推荐、地图管理及辅助工具等功能。
为旅游气象服务提供了一个很好的网络服务平台,提供了更科学直观的旅游气象服务产品,改善了旅游气象的服务形式,增强了旅游气象服务能力。
关键词:WebGIS,旅游, 气象服务, ArcGIS Server1.引言地理信息系统GIS ( Geographic Information System)是在计算机硬、软件环境的支持下,对现实世界的各类空间数据及属性进行管理的技术系统。
在一定程度上,气象数据信息都是地理信息,因为气象中的风速、温度、气压等要素以及自动站、雷达、卫星等数据都是相对于具体的空间域和时间域而言的,没有地理位置的气象数据也是没有意义的[1]。
Web GIS是利用Internet技术来扩展和完善GIS的一项新技术,是通过互联网对地理空间数据进行发布和应用,以实现空间数据的共享和互操作。
用户能从Internet的任意一个节点浏览Web GIS站点中的空间数据、进行各种空间检索和空间分析。
将WebGIS与旅游气象服务相结合,实现旅游相应的气象信息的网络发布、查询、浏览及分析,为旅游景点的选择及推荐提供更方便的参考依据[2]。
浙江省旅游资源丰富,旅游事业发展迅猛,随着社会经济建设的加快进步和广大人民群众生活的日益提高,旅游业迎来了前所未有的发展机遇,对旅游气象服务也提出了新的和更高的要求。
气象气候条件是进行旅游活动的基本条件之一,对旅游质量和旅游安全起着非常重要的作用。
不利的天气条件会对旅游者交通出行、景区观赏等产生不良影响,每年因气象灾害导致的旅游者伤亡、旅游设施损毁事故也时有发生,越来越多的旅游者开始根据天气来安排自己的出游计划,气象信息已成为旅游者出游所必需的服务信息,成为旅游经营者和各级旅游部门防范气象灾害的重要依据[3]。
浙江省是国内重点旅游区,具有得天独厚的地理条件和丰富的人文景观,旅游气象服务是气象部门服务工作中一个重要的项目,加强旅游气象服务已经势在必行,为了更好的开展浙江省旅游气象服务,建立了一套基于WebGIS的旅游气象服务系统。
2.系统构架2.1总体设计旅游气象服务是旅游服务中一个重要的环节,旅游行业的众多潜在气象用户需要整体和系统地开发。
旅游业牵涉到吃、住、行、玩等都与天气的变化密切相关[4]。
适宜的天气气候不仅具有特殊的景观功能,而且可以增强和拓宽富有特色的旅游内容,更大限度地扩大旅游时空分布,能取得更好的社会效益和经济效益。
随着现代GIS技术的广泛深入应用,对旅游信息和气象资料的结合提供了技术支持。
将GIS应用于旅游气象服务,为用户提供一套高效的旅游气象服务系统,以及将GIS与网络技术结合,利用Web发布旅游与气象相结合的空间数据,使用户可以通过网络方便获取旅游信息及相应的气象信息,实现旅游景区基本信息以及沿线相关气象信息等空间数据的浏览、查询和分析,为旅游气象信息提供了新的模式 [5]。
旅游气象服务系统是建立在计算机网络系统上的,以实时动态的旅游景点实况和预报为基础,能够处理以旅游为核心的空间信息及其相关信息的一个信息系统。
该系统采用B/S 架构,分为基础设施层、数据存储层、数据访问层、业务功能组件、服务层、前端应用层。
系统主要运行在Windows操作系统中,如XP,Win7等桌面类系统。
此外,在服务器端需要安装SQL Server 2008 R2,ArcSDE10和MS Server 2008 R2等。
系统基于Java高级语言和JDK1.6以上平台。
开发工具主要是MyEclipse,其余包括ArcGIS Server 10,SQL Server 2008 R2等。
系统使用Flex Viewer作为前台开发框架,该框架使用的前端视图容器包括UI管理、MAP管理、挂件管理、配置管理几大模块,框架结构清晰、可配置较强。
系统界面如图1。
图1 系统界面图2.2数据库设计(1)旅游和地图数据的整理通过综合评价模型筛选出的研究景点,查得景点的经纬度信息,再在 Arcmap中制作成矢量数据,叠加于背景地图上,并作为一个图层跟地图数据进行统一存储和管理。
地图数据是根据测绘局提供的1:1万地图数据进行整理得到,地图数据有行政界、道路、水系、影像等图层。
基础地图数据是旅游气象服务系统的背景数据和参考数据,可以帮助用户选择旅游景点和最佳旅游路线[6]。
空间数据是按矢量数据模型、栅格数据模型和影像数据模型来组织的。
矢量数据模型按点、线和面的形式来表示,并建立拓扑关系。
栅格数据模型是以规则的象元阵列来表示地物的。
(2)气象数据的接入旅游景点的监测实况信息是来源于关系数据库存储的数据,经过系统分析处理后通过ArcSDE存放在Geodatabase数据库中,系统可以直接访问数据库服务器,将旅游景点及沿线的气象监测实况信息展示出来。
旅游景点的天气预报信息来源于全国的天气预报报文,根据统一的FTP调用地址,将系统中所需的数据集中管理。
系统中提供FTP服务器的访问功能,在系统中集成FTP客户端。
将旅游景点及沿线对应的天气预报从报文中读取提供查询显示,系统支持未来5天的天气预报的查询。
(3)多源数据的存储和管理旅游景点及地图数据是采用关系数据库来管理空间数据,可以充分利用RDBMS数据管理的功能,利用SQL语言对空间与非空间数据进行操作,同时可以利用关系数据库的海量数据管理、事务处理(Transaction)、记录锁定、并发控制、数据仓库等功能,使空间数据与非空间数据一体化集成和管理。
地图数据库采用ArcGIS中的Geodatabase,数据是按照要素数据集、栅格数据集、数据表和关系类来组织的。
要素数据集中又可以包括点、线和面要素类,几何网络,普通表和关系类等。
数据集是具有相同地理参考系的数据的集合。
对于栅格数据集,可以建立栅格目录和镶嵌数据集。
对空间和属性数据的存储和管理采用对海量数据的存储和管理以及多用户的并发访问都支持较好的ArcSDE。
ArcSDE提供版本控制的能力(即VERSION CONTROL),可以很好地保证数据的一致性,同时实现多用户高效的并发访问机制。
非空间数据是与地理位置无关的数据,在系统中是指除基础地理数据和旅游数据以外的气象业务数据。
只要是旅游沿线实时监测数据,其中包括常规自动站和中尺度自动站的监测数据,这些监测数据以数据表的形式存在,采用SQL Server 2005数据库存储。
现有三种数据表,自动站信息表、常规自动站监测表和中尺度自动站监测表。
常规自动站监测表和中尺度自动站监测表都是每个月一张。
所有的非空间数据均采用大型关系型数据库管理系统进行统一存储和管理,气象信息数据则直接与基础地理信息进行了空间一体化关联存储。
3.关键技术3.1面向服务的构架面向服务的体系结构(Service-Oriented Architecture,SOA)于1996年Gartner最早提出。
面向服务的体系构架支持将电子地图和功能模型等以服务的形式发布出来,提供从数据处理,应用功能开发、服务定制到服务发布、系统优化、角色权限管理、安全加密等一整套解决方案,来构建面向服务(SOA)架构的地理信息服务系统[7]。
ArcGIS Server是ESRI推出的一个面向服务构架的用于构建集中管理、支持多用户的企业级GIS应用的平台,提供了一整套用于开发基于网络的企业级服务器端程序的组件集。
支持丰富的GIS功能,使用ArcGIS Server可以构建Web应用、Web服务、以及其它运行在标准的.NET和J2EE Web服务器上的企业应用。
ArcGIS Server包括两个部分,一是GIS Server,它是一个提供GIS服务的服务器软件产品,专门用于管理和发布地图服务和定位服务;另一个是ADF(Application Developer Framework),即应用程序开发框架,它有JAVA 和.NET两种开发组件集,它是用来开发和部署基于GIS Server的Web应用程序的产品,包括组件对象、Web控件、Web模板和开发帮助,它还有一个Web程序的Runtime,专门用于发布和部署使用ADF开发的Web程序。
基于SOA架构的ArcGIS Server 可以为构建旅游气象服务共享发布提供底层支持[8]。
ArcGIS Sever可以看成是一个服务的容器,包含了网络地理信息服务中基本的服务类型,每一种服务都代表一个位于服务器端的GIS资源。
GIS服务器执行GIS相关的任务和操作,最后将结果以通用格式的形式,如图片和文本,发送到客户端。
通过服务可以在客户端之间更加容易的共享资源,同时可以保证所有的客户端访问到同样的资源,而不用在他们的机器上单独安装任何GIS软件。
3.2 FlexViewer框架和ArcSDE For Java开发Flex Viewer是ESRI公司推出的可以高效开发基于Web的地理信息应用系统的一种基本架构。
此框架和服务器端的通信是基于Web Service的。
在服务器端,发布出服务,前端可以直接调用。
该框架其实是一个大的容器,由UI管理、MAP管理、Widget管理、配置管理等几大组件构成,其中每一个模块都是一个Widget,初始化BaseWidget时,会依赖IWidgetTemplate去初始化每个模块的title、icon等属性。
Flex Viewer使用EventBus 来负责统一分发事件,通过这种发布、订阅的消息模式,组件之间可以轻易交互而不用直接访问组件中的方法。
系统业务层框架是J2EE,它通过Blaze DS与Flex客户端保持数据通讯。
Blaze DS核心功能包括RPC Services和Message Service。
前者为请求响应的应用而设计,提供了一种很好的访问外部数据的选择。
客户端程序使用RPC服务发送异步请求给远程服务,服务端处理请求直接返回数据到客户端。
可以通过客户端RPC组件获取数据,客户端组件包括HTTP GET or POST(HTTP Services),SOAP(Web Services),Java Objects(Remote Object Services)。