一种基于开源软件的WebGIS系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

文件转入Oracle Spatial空间数据库的问题。

因此系统实现的过程主要按照以下步骤进行开发。

4.1部署Oracle Spatial空间数据库
这一步骤关键是创建MAPINFO_MAPCATA-LOG表,并对Oracle数据库进行空间化,代码如下:CREATE TABLE MAPINFO_MAPCATALOG(
SPATIALTYPE FLOAT,
TABLENAME CHAR(32),
OWNERNAME CHAR(32),
SPATIALCOLUMN CHAR(32),
DB_X_LL FLOAT,
DB_Y_LL FLOAT,
DB_X_UR FLOAT,
DB_Y_UR FLOAT,
COORDINATESYSTEM CHAR(254),
SYMBOL CHAR(254),
XCOLUMNNAME CHAR(32),
YCOLUMNNAME CHAR(32),
RENDITIONTYPE INTEGER,
RENDITIONCOLUMN CHAR(32),
RENDITIONTABLE CHAR(32),
NUMBER_ROWS INTEGER
);
4.2将MapInfo地图数据导入Oracle空间数据库此步骤主要完成将MapInfo地图文件数据传入Oracle Spatial空间数据库,可以运用MapInfo自带的EasyLoader工具将地图数据载入Oracle数据库。

每个MapInfo地图文件在进行数据载入过程中,是作为一个数据表出现的,载入Oracle Spatial空间数据库后,也是以Oracle数据库中一个表的形式存在的。

4.3搭建GeoServer地图服务器
GeoServer地图服务器在其网站下载过程中,可以选择Windows平台的安装文件或Linux平台的文件包进行下载。

完成GeoServer安装后,需进一步安装两个Oracle插件。

安装完插件,即可在GeoServer 地图服务器中部署电子地图的图层文件了,将Ora-cle Spatial空间数据库中的每个空间数据表部署为一个图层,以便于进行地图的发布。

4.4使用uDig可视化生成地图样式
uDig是一款开源桌面GIS软件,基于Java和Eclipse平台,可以进行shp格式地图文件的编辑和查看。

在这里使用这款开源软件,是为了生成地图样式(SLD)文件的,uDig支持可视化地调整地图图形元素的配色方案。

4.5使用OpenLayers实现WebGIS客户端
OpenLayers是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,采用的版本是V2.5,它采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件。

下面给出使用OpenLayers实现WebGIS客户端的部分主要代码:
//地图初始化
function init(){
var options={
projection:"EPSG:4326",
units:degrees
};
map=new OpenLayers.Map(map,options);
//地图图层属性设置
Hrb_base=new OpenLayers.Layer.WMS(
"HRB_BASE","http://localhost:9088/ge-oserver/wms",
{layers:zsk:HRB_BASE,
format:image/png},
{buffer:0});
//图层加载
map.addLayers([Hrb_base]);
//控件加载
map.addControl(new OpenLayers.Control.Edi-tingToolbar(Hrb_base));
map.addControl(new OpenLayers.Control.Layer-Switcher());
};
完成上述步骤,已可以进行基本地图图层及相应控件的显示,后续只需添加一些通过控件完成用户功能操作的代码即可。

5结束语
本文所开发的是一个独立的WebGIS系统,可实现与多数系统平台的对接或嵌入。

该系统在J2EE三层体系结构的基础之上,引入开源思想,采用OpenLayers实现地图客户端,搭建GeoServer地图服务器,运用J2EE技术实现了WebGIS的开发,实现了相关地理信息的管理、显示、查询、分析等功能。

随着Linux等开源软件的普遍使用,越来越多的开发者加入到开源软件的开发中来,开源软件资源的将以更快的速度发展,更加美观、可靠,功能更加强大的WebGIS将会出现在不久的将来。

参考文献:
[1]顾进.基于开源的WebGIS平台研究与地理信息LOD实现[D].徐州:中国矿业大学,2007.
[2]李新通,何建邦.GIS互操作与OGC规范[J].地理信息世界,2003(5):233-236.
[3]刘天悦,吴保国.基于开源WebGIS的“三网”绿化工程信息服务系统研建[J].东北林业大学学报,2011(8):124-128.
[4]任品德,牟健,姜峰.基于WebGIS技术开发浮标综合管理平台系统的研究[J].海洋技术,2011(9):5-8.
[5]郭斌.基于WebGIS的苏州电子地图网的设计与实现[J].电脑知识与技术,2010,12(6):3075-3076.责任编辑:刘新影

45
—。

相关文档
最新文档