首页 > 代码库 > WebGIS系统架设方案

WebGIS系统架设方案

概述

互联网技术的发展,尤其是在线地图的出现,以及LBS技术在网络和生活方方面面的快速渗透,很大程度上带动了以前不温不火的地理信息系统(GIS)行业的快速发展。当前,GIS行业的项目规模也在不断地扩大。包含基本地图服务功能,配套相关行业业务管理、数据管理能力的软件系统很多都会飙升到千万级别。三维GIS系统更甚,单单的数据获取,以单省来计算基本也在千万级别。

WebGIS方面,行业外的人开始接触很多可能都是从Google地图Api,或者是说从Google地图Api示例开始的(除了Google地图Api同品类的还有Baidu 地图Api、高德地图Api)。最初接触Google地图Api的时候,我们所需要做的工作就是使用JS脚本在web工程的前台页面创建一个地图对象并关联到一个div标签,一个有世界、有中国、有各种道路的地图就出现了。当添加上放大、缩小、拖动、查询、比例尺等等给你之后,就可以实现Google地图中能够使用的各种功能,各种爽了。到这里,可能你会说WebGIS如此简单,谈何架构?

是的,确实当我们在可以连接互联网的地方,能够正常访问Google服务的地方,没有特殊地理数据需求的地方,我们完全可以把Google地图嵌套到我们的应用里面。在互联网上这种应用很多。比如,旅游服务、餐饮服务、房屋服务、租车服务、社交类型,好像吃、穿、住、行、用都要和地图联姻。这里存在两个问题就是:1.如果我要使用自己的地理数据,我该怎么和Web系统组合起来?2.如果我的系统是部署在内部环境的,我该怎么办?

为了在遇到上述两个问题,仍然能够让我们的WebGIS系统跑起来。依据使用软件的来源不同,这里提供3种不同的架构方案,纯ArcGIS体系的架设方案、纯开源体系的架设方案、混合架设方案。一个完整的WebGIS系统,可以切分成3个部分:前台界面+地图/数据服务+数据。接下来也将从这3个部分分别说明3种架构的实现方案。

 

纯ArcGIS体系的架设方案

ArcGIS 是美国ESRI公司的产品,包含了从前台到服务发布到数据管理的整套解决方案。凭借着45年的GIS领域项目和研发经验,以及该公司一直努力实行的教育行业捐赠活动,已经成了国内高效GIS领域专业的必修软件。该体系完全使用ESRI的软件产品进行架构设计。

页面层的开发有多种可选技术,支持javascript(以dojo为基础支持)、flex、silberlight。服务层有两种软件可选ArcGIS Server和ArcGIS IMS,其中ArcGIS Server包含ArcGIS IMS的所有功能。数据层需要ArcSDE软件和项目相关的地理数据。

该架构有个好处是,可以使用ArcMap桌面软件的丰富功能实现对服务层软件及数据层软件统一管理,方便、易于上手。它的缺点就是,所有软件均为商业软件,项目方案过程中需要考虑购买软件的预算支出,对于小型(百万以下)、商业运行(非原型和实验性)的系统可能不是很适用,因为整套架构所需软件的价格已在50万以上。

 

纯开源体系的架设方案

GIS领域的开源项目很多,据说在200个以上,这是2012年上学时得到的数据。不像大多开源项目弊端必说的技术资料少,存在技术风险,很多GIS开源项目有强大的团队支持、有完善的技术文档、也有很多成功的经验,同样可以很容易的找到入门的demo,很快的实现上手。

该方案页面层使用被广泛使用的Openlayer,采用javascript技术实现,在网上能够找到足够多的帮助材料、示例代码。服务层使用GeoServer或者Map Server,虽然Map Server具有比GeoServer更多的功能,更好的性能,但是由于使用研究Geoserver的人很多,在问题解决上能够有很大的优势。数据层推荐使用的是PostgreSQL,虽然MySQL也支持空间数据库,但是有些服务层程序对MySQL不兼容,比如ArcGIS Server。

开源的优势就是免费,对于小型项目绝对是一个不错的选择。而且,在使用的过程中或许你会逐渐的开始关注底层技术实现,并且步入大牛的行业。。(一个遥远的梦想:))

 

混合架设方案

我想说的混合方案包含两层意义:1.交杂的使用3层中的技术,比如我们现在项目的整体架构方案就处在一个转型期,从完全依赖ESRI体系转到开源体系。所以,过程中没有一次性的整体跳变,而是从数据库开始逐渐的对ESRI体系中的3个层次进行替换。

2.对于数据底图,就是大家常说的瓦片地图,一般它应该至少是包含业务区域的建筑、道路、河流等,可以完全去和Google地图、百度地图等同的东西。这个东西,如果是使用购买的方式,那么对于无论什么类型的项目来说都是一个奢侈的选择,有时候我们也会购买高德地图,或者灵图地图,有时候我们也会从网络上下载google地图或者其他可以下载到的网络地图瓦片数据。然后自行开发一个Tomcat的地图服务程序来提供web瓦片地图服务。

补充说明

像第一种架构方案说道的ESRI体系一样,还存在着很多种单个公司提供的完整体系软件,比如国内的超图、吉奥,国外的Map Info,以及提供三维地图的国遥、EV-Globe等。

现在可能有些项目的甲方专门要求要采用WebGIS技术,实现可以浏览器访问的软件系统。但是,这里有一点需要说明的是,web由于其存在的本地文件访问权限问题、webgis软件不能很好支持矢量、遥感数据编辑问题,在选择到底使用webgis还是桌面gis(单机/单机+服务器)的时候一定要对需求和webgis的这点短板进行一个简单的考量。