基于Google Maps API的旅游地理信息系统的设计与实现
2012-04-29孙仲益黄卓维佟志军
孙仲益 黄卓维 佟志军
摘 要:旅游信息系统是数字城市的一个重要组成部分,也是城市信息化发展的重要内容。而由属性和空间数据库驱动,并将Google Maps API与Web GIS技术结合的旅游地理信息系统的设计方案与传统的旅游信息系统相比,有着空间信息准确、功能强大、轻量级、易扩展的特点。并针对长春市旅游业发展情况,开发长春市旅游信息系统,该系统将为长春市旅游管理和旅游业发展提供可靠的信息平台。
关键词:旅游地理信息系统Google APIWeb GIS
中图分类号:P429 文献标识码:A 文章编号:1674-098X(2012)05(b)-0019-02
旅游地理信息系统,是旅游学、地理学和计算机网络科学等科学集中一体的产物,是获取、存储、管理、传输和应用旅游地理信息的系统。Google Maps API 是Google为开发者提供的编程API,允许用户在不建立个人地图服务的前提下,将Google的地图数据嵌入到所建网站之中,并可以借助Google地图数据为用户提供位置服务。基于Google Maps API的Web GIS系统,相对于现行的Web GIS系统相比,减少基础数据处理量,并且有着更加稳定的GIS服务。长春市旅游信息系统是将长春市的各种空间对象以数字化的形式在计算机中反映出来,从而有效地管理空间数据,为用户提供准确的旅游信息服务,也便于有关部门进行旅游建设决策。
Google API系列属于Web API的一种,是通过开放的Internet传输协议,以标准方式定义服务内容并提供可被其他应用调用的API。本文阐述了基于Google Maps API与Web GIS技术的旅游地理信息系统的设计方案,并以长春市为例实现系统开发。
1 系统结构设计
总体框架分为客户端、服务器和数据库。客户端提供用户与Web服务器之间良好的交互界面。用户通过终端向服务器发出查询请求后,服务器处理请求,并把结果通过声音、文字等直观形式反馈。良好设计的界面是提高用户体验的关键。主要运用Html和CSS实现框架,同时辅以JavaScript,包括jQuery库和jQuery UI库实现客户端功能,同时保证界面的美观。服务器分为Web服务器和地图应用服务器,Web服务器接受并检验客户端请求,处理后与数据库服务器端交互。其中面向用户的服务由ASP.Net脚本开发,面向管理的服务由PHP脚本开发。应用服务器分为地图应用服务器和天气应用服务器。应用服务器都由Google部署和维护,Web应用服务器通过调用Google Maps API和Google Weather API等得到相应的结果。数据分为空间数据库和属性数据库,Web服务器和应用服务器通过SQL语言向数据库发出操作指令。空间数据库由Google管理,属性数据库部署在本地。
根据面向对象的不同,系统又可分为面向用户结构和面向管理结构,如图1所示。
1.1 面向普通用户结构设计
客户端的浏览器向面向用户的Web服务器提交的查询请求后,经过Web服务器接收,根据查询请求内容,将查询请求处理后向不同服务器进行分发,根据后续服务器的不同,分为属性查询修改、地图查询和天气查询三种请求类型。
属性查询修改请求是对属性信息的查询或者修改请求,例如用户信息查询,传递给属性数据库服务器,得到查询结果后直接返回客户端;地图查询请求是客户端将地理信息相关查询请求向Google的地图应用服务器传递请求,再由地图应用服务器向空间数据库服务器提交查询请求,并暂时将查询结果返回给地图应用服务器;天气查询请求是客户端天气应用相关查询向Google的天气应用服务器提出查询请求,由天气应用服务器处理请求。其中,由于涉及跨域的安全性问题,使用Web服务器作为代理,天气应用服务器和地图应用服务器得到的查询结果先返回给代理,再由代理返回给用户端的浏览器。
1.2 面向管理用户结构设计
该结构作为后台对用户信息进行管理。管理人员同样通过客户端的浏览器,向面向管理的Web服务器发送查询请求,然后由其向属性数据库提出查询、插入、修改和删除等请求,最终还是由面向管理的Web服务器接收并处理查询结果,再返回给用户端的浏览器。
2 数据库设计
2.1 属性数据库设计
本系统选用MySQL作为数据库来存放用户和景点的相关信息,MySQL是一款小巧的关联数据库管理系统,使用灵活性高,适合于本系统类型的网站的使用。本系统的属性数据库包含九个表,其具体存储内容如表1所示。
2.2 空间数据库设计
空间数据库指的是地理信息系统在计算机物理介质上存储的与应用相关的地理空间数据的总和。本系统的空间数据库由两部分组成,一部分是Google Maps 所提供的基础地理数据,使用时只需要调用Google Maps API即可,另一部分是SuperMap的sdb格式的空间数据库。SuperMap SDX+全面支持目前主流的关系数据库平台,还可以直接访问WFS、WMS、WCS等所提供的Web服务,并且对于Oracle Spatial 和SDB也较好支持。SuperMap SDX+对于传统的点、线、面类型的空间对象提供全面支持,而且对拓扑模型、网络模型、格网数据等复杂的数据模型也支持良好。
3 长春市旅游地理信息系统实现
3.1 面向用户系统实现
前台功能主要分为景点部分和用户部分,景点部分旨在提供相应的景点信息和评论等内容,而用户部分提供了良好的交流平台,同时包含决策支持与定位功能。
用户端面向用户界面如图2所示。
景点面板中景点描述功能用于显示景点相关信息。其中包括的经纬度坐标通过Google Maps查询得到。而相关图片,通过jQuery库,允许用户放大观看,也可以进行幻灯片式浏览。交通查询功能通过Google Maps API与Directions Service进行通信,该服务将接收路线请求并传回计算结果。再使用Directions Renderer对象渲染这些结果。评论功能使得用户可以对景点进行评分和评论,同时也可以查看其他用户对该景点的评价。评论将经过后台管理员审核后显示。天气查询使用Google Weather API,查询长春的当天和未来5天的天气状况。在页面载入过程中向http://www.google.com/ig/api发送Http请求,并通过代理服务器解析返回的XML数据。
用户面板中地理定位是通过各种数据收集机制识别用户或计算设备的地理位置。主要通过W3C 的Geolocation标准确定用户位置,同时通过Google的高程数据库查询海拔数据。聊天功能允许用户可以管理好友或进行在线即时交流,包括发送地理坐标等功能。可以让系统智能添加好友,则会根据用户的相关记录判断对景点的偏好情况进行配对。组团与行程安排功能允许用户可以加入和退出组团,同时也可以新建一个对于特定景点在特定时间内浏览的组团,新建的组团在后台管理员审核后可以成功创建。组团的成员可以邀请自己的好友加入组团。组团中同样可以线即时交流,包括发送地理坐标等功能。日程功能通过使用户设定浏览景点与游览时间,进行提示和记录。换肤功能是在客户端每个html标签中加入相应的class名称,通过jQuery UI的ThemeRoller应用整体配色方案,达到换肤效果。
3.2 面向管理用户结构实现
面向管理的服务由PHP脚本进行编写,客户端由Html和CSS构建框架,同时辅以少量的JavaScript脚本完成功能,一共分为组团管理,景点管理和用户管理三个模块。组团管理用于查看组团信息、验证组团和修改人数上限等。景点管理则用于查看、添加或管理景点库。用户管理可以验证新用户,删除用户和修改用户的权限等。图3为面向管理系统界面。
4 结语
旅游地理信息系统以Web GIS的概念将旅游和用户信息数据库结合,通过地图载体呈现,从而改善以往的旅游信息系统几乎全是文字和图片信息的缺陷。利用Google Maps API加强了空间信息的丰富度,而Ajax技术的引入使得用户享受到电子地图般的浏览体验。本研究采用开放性软件与免费的地图API,资料的取得与技术支持也较为便捷,并配合服务器端的数据库进行数据的管理。此架构利于资源共享,且因属于开放性的标准系统,兼容性强。