一种基于开源软件的WebGIS系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文章编号:1009-2552(2012)08-0052-03中图分类号:TP393文献标识码:A
一种基于开源软件的WebGIS系统
才智1,张学金2
(1.黑龙江科技学院计算机与信息工程学院,哈尔滨150027;2.黑龙江科技学院外语系,哈尔滨150027)
摘要:随着Internet技术的不断发展,WebGIS已成为GIS发展的必然趋势。介绍了WebGIS基本原理及开源WebGIS设计规范———OpenGIS规范的基础之上,运用开源软件的设计理念,采用J2EE 三层体系结构模型,设计了一个独立的WebGIS系统。该系统采用OpenLayers开发地图客户端,搭建GeoServer地图服务器,实现了电子地图信息的在线显示、管理、查询、分析等功能。
关键词:WebGIS;OpenGIS;开源软件;地图服务器
A WebGIS based on open source software
CAI Zhi1,ZHANG Xue-jin2
(1.Department of Computer and Information Engineering,Heilongjiang Institute of Science and Technology,Harbin150027,China;2.Department of Foreign Language,Heilongjiang Institute of Science and
Technology,Harbin150027,China)
Abstract:With the continuous development of Internet technology,WebGIS has become the inevitable trend of development of the GIS.This paper introduced the basic principles of WebGIS and the design specifications of open source WebGIS-OpenGIS,and then used the design concepts of open source software and J2EE three-tier architecture model to design a separate WebGIS.The system used the OpenLayers to develop the map client,and used GeoServer to set up the map server.And the system realized the online display,management,query,analysis and other functions of electronic map informations.
Key words:WebGIS;OpenGIS;open source software;map server
0引言
在Internet技术不断发展的今天,人们对地理信息系统(GIS)的要求也在发生着变化。人们需要在Internet上实现空间数据的浏览、查询和分析等GIS基本功能,这也成为了GIS发展的必然趋势。万维地理信息系统(WebGIS)是Internet技术应用于GIS开发的产物。GIS通过Web功能得以扩展,真正成为一种大众使用的工具。从Internet的任意一个节点,用户可以浏览WebGIS站点中的空间数据、制作专题图,以及进行各种空间检索和空间分析,从而使GIS进入千家万户。
1开源WebGIS设计思想
WebGIS应用客户端/服务器概念来执行GIS的分析任务。它把任务分为服务器端和客户端两部分,客户可以从服务器请求数据、分析工具或模块,服务器或者执行客户的请求并把结果通过网络送回给客户,或者把数据和分析工具发送给客户供客户端使用[1]。
开源软件,即开放源代码软件,与商业软件相比,它具有源代码免费的最大优势,更好地实现了代码重用及资源共享。本文的WebGIS系统就是在开源软件的基础之上进行开发的。
开源WebGIS的思想主要源于OpenGIS(Open Geodata Interoperation Specification,OGIS),这个所谓的开放的地理数据互操作规范(OpenGIS)是由美国的OGC(OpenGIS Consortium)组织提出的。
收稿日期:2012-06-18
基金项目:2012年黑龙江省教育厅科学技术研究项目(12523049);
黑龙江科技学院校内科研启动基金项目
作者简介:才智(1980-),男,在读博士,讲师,主要研究方向为嵌入式系统、软件工程。
—
25
—
OpenGIS的目的在于提高地理信息处理的互操作性,消除地理信息应用之间以及地理应用与其它信息技术应用之间的藩篱,建立一个无“边界”的、分布的、基于构件的地理数据互操作环境[2]。
OpenGIS是一个开放标准,不过它已经不仅仅在开源世界发挥作用,许多商业软件也支持了OpenGIS的标准。当然,这些商业软件全部都是开源软件。
2开源软件的选择
2.1空间数据库
空间数据库指的是地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数据的总和,一般是以一系列特定结构的文件的形式组织在存储介质之上的。本文所开发的WebGIS系统由于考虑到与其他平台的接口问题,选用的是Oracle数据库。
Oracle数据库从9i开始提供了对空间数据较为完备的支持,增加了数据库类型和相关的操作,并且提供了空间索引功能。Oracle中各种关于空间数据库的功能主要是通过Spatial组件来实现的,Ora-cle Spatial空间数据库组件对存储和管理空间数据提供了较为完备的支持。它主要通过元数据表、空间数据字段(即SDO_GEOMETRY字段)和空间索引来管理空间数据,并在此基础之上提供一系列空间查询和空间分析的函数。
2.2地图服务器
目前最为常用的开源地图服务器主要有Map Server和GeoServer两款。其中,MapServer内核使用C++编写,基于CGI脚本实现,页面调用支持PHP、JSP等多种语言,并且对OGC的WMS和WFS规范提供支持[3];GeoServer是基于Java和Geotools库开发的,功能全面且遵循OGC开放标准,并由同时拥有PostGIS与uDig的Refractions公司提供支持,Ge-oServer对发布WFS-T和WMS服务提供便捷的支持,并以XML文件描述所有地图服务[4]。
比较来说,Mapserver对WMS的支持更为高效,而Geoserver则更擅长于结合WFS规范的属性查询。本文所开发的WebGIS系统是使用J2EE进行开发的,因此选用了GeoServer作为地图服务器。2.3地图客户端
本文所开发的WebGIS系统浏览器的地图客户端选用的是OpenLayers。OpenLayers是一个专为WebGIS客户端开发提供的JavaScript类库包,用于实现标准格式发布的地图数据访问[5]。OpenLayers 支持多种格式地图文件,还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers中进行叠加,在这一方面OpenLayers提供了非常多的选择。除此之外,OpenLayers支持OpenGIS规范中的WMS (Web Mapping Service)和WFS(Web Feature Serv-ice)等网络服务规范,在OpenLayers提供的类库当中,还使用了类库Prototype.js和Rico中的部分组件,为地图浏览操作客户端增加Ajax效果。
3系统体系结构
本文所开发的WebGIS系统是在原有GIS系统的基础之上所做的网络化开发,采用基于J2EE技术的三层架构设计:基于OpenLayers开发的地图客户端与浏览器构成表示层;以GeoServer构建的地图服务器和Web服务器构成应用层,这其中的Web 服务器可以选用WebLogic、Tomcat等各种知名的Web服务器软件,也可以选用GeoServer所自带的Jetty;而文件系统及Oracle数据库则构成了数据层,其中Oracle数据库包含工程数据库和空间数据库两部分,空间数据存储于Oracle Spatial空间数据库中。系统体系结构图如图1所示。首先,由客户端通过浏览器上的用户操作页面接收用户请求及输入信息;然后,客户端将输入信息及客户请求提交给应用层,通过Web服务器处理相应客户端的请求,并通过地图服务器提供的应用接口与数据层进行通信;数据层主要存储空间数据、系统数据、文件数据等内容,根据用户请求查询相应数据,最终将查询结果通过地图服务器、Web服务器、地图客户端,最终反映在浏览器上
。
图1系统体系结构
4系统实现
本文所开发WebGIS系统是在C/S结构GIS系统基础之上完成的开发,其中原系统的地图文件一直使用MapInfo软件进行地图文件管理,针对Map-Info地图文件的特点,要在使用开源软件进行开发的前提下完成WebGIS的开发,不得不面对放弃与MapInfo地图文件兼容性最佳的同为MapInfo公司的MapXtreme Java地图服务器的局面。同时,由于数据库选择方面的原因,还要解决将MapInfo地图
—
35
—