GIS起源于上世纪六十年代,发展到现如今,也早已不再是某些专业领域的“阳春白雪”。放眼当下,各商业GIS软件有如群雄逐鹿,大有风起云涌之势;而开源GIS软件也有如群星璀璨,在各类型GIS产品中竞相争艳。本系列以介绍各相关开源GIS软件为目的,藉以实现一套行之有效的WebGIS实施方案。
以我个人粗浅的认识来看,一套切实可行的WebGIS需具备以下三个部分:① 地图数据,地图数据既是GIS运行的基础也是GIS中永远的主角;② Web服务器&GIS服务器,Web服务器主要提供Web信息浏览服务,GIS服务器则用于提供WMS、WFS和WCS等Web服务;③ 客户端展现,这个当然是面向最终用户的了。
地图数据生产,可以采用uDig、QGIS、OpenJUMP等开源桌面GIS。
地图数据存储,有两种可选方法。一是文件存储,直接以Shapefile文件形式存储;二是利用空间数据库。在开源空间数据库中,比较成型的有PostGIS和MySQL Spatial。其中PostGIS是开源数据库PostgreSQL的扩展模块,而MySQL Spatial是开源数据库MySQL的扩展模块。相比较而言,在开源GIS领域,PostGIS能够得到更为广泛的支持。
Web服务器,Tomcat乃不二之选。
GIS服务器,GeoServer或者MapServer。二者都是开源WebGIS中的佼佼者,在功能与性能上各有千秋。GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,MapServer则是基于C实现的。
客户端呈现,现在的主流方式都是请求地图瓦片然后在客户端进行展示,因此理论上客户端只需要能够请求并获取相应的地图瓦片即可。但是仍然可以采用一些开源库的来简化、强化、优化前端开发。比较著名的有Openlayers、OpenScales,其中OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问,OpenScales算是OpenLayers的ActionScript翻版,对于Flex前端开发来说是个不错的选择。另外还有ExtMap、Mapbuilder等。
以上已经给出了用开源软件实现WebGIS的各个环节可采用的软件,但在实际中,还需要根据项目实际做一下筛选。如果是Java版项目,推荐uDig + PostgreSQL/PostGIS + Tomcat + GeoServer + Openlayers组合。
本文作为该系列的开篇,简要的介绍了WebGIS,对WebGIS的实现的各个环节给出了多样化的开源软件以供选择,并给出了Java环境下实现WebGIS的开源软件组合。本系列的后文,将对这一开源WebGIS实施方案作详细讲解。