针对业务发展需要,需要开发设计一套具备自己独立GIS平台。然而以ArcGIS为主的GIS软件价格昂贵,在经过仔细技术与市场动向调研后,确立一套以Java语言的开源GIS软件平台。桌面CS端Udig+GeoServer+三方组件+矢量切片,服务器BS端GeoServer+ OpenLayer +PostGIS+ GeoWebCache+ 扩展,移动端GeoServer+ MapBox/LeafLet+ Html5。三维方面WorldWind/Cesium+三维建模+ GeoServer,可满足CS和BS需求。云端核心提供SAAS为主的产品应用。应用开发上融入通用的Extjs、JQuery、MVC,前端融入ReactVUEAVALON等。
【名词解释】:
(1)Udig:一款开源GIS桌面系统,JAVA开发扩展,类似ArcDesktop,但功能比不上;
(2)GeoServer:一款开源WebGIS地图服务器,类似ArcGIS Server,提供统一OGC接口服务WMS/WFS/WMTS,功能比较强大,便于使用,使用量多较成熟;
(3)OpenLayer:一款开源前台地图API产品,对数据进行可视化、空间分析、成果展示;
(4)PostGIS:一款开源先进的开源空间数据库;
(5)GeoWebCache:可看做瓦片金字塔服务器,提高web浏览速度性能;
(6)MapBox/LeafLet:一款轻量前端地图API,即可支持Web显示,也可支持移动端设备显示,目前ESRI(ArcGIS)也提供了Esri-LeafLet用于移动Web;
(7)WorldWind:一款开源三维系统,可提供桌面和Web显示,支持多种三维模型和多种数据库,需自定义定制;
(8)Ceisum:一个基于WebGL的开源地图引擎,直接在浏览器中展示三维或二维地图,无需插件,已有一定GIS应用,也适合做二三维;
(9)SAAS:云计算其中一种表达,软件即服务,提供云端软件形式使用产品。
1 平台架构概述
目前在商业应用中多是以ArcGIS进行从数据、建模、开发、应用、服务,有一部分大公司开发具有知识产权的自己一套产品平台,很多公司有或正在研发此类似底层开发的平台产品,或基于C++ GIS组件,或基于GIS二次开发组件,或基于GIS开源组件,大多数都是针对本公司业务产品而架构设计,形式多以大数据、网格、云计算等为依托,辐射公司内部各种产品,增加技术含金量,从创新角度诠释产品,达到创新、效益目的。
针对项目应用方面,ArcGIS价格昂贵,从桌面到WebGIS到移动再到云端可能总达50万甚至上百万软件费用,多数需求商承担不起这样的成本。然而随着GIS技术成熟,开源GIS慢慢夜融入市场,目前正处于商务收费GIS软件与开源免费GIS软件的分流时期,抓住这个机遇搞创新产品可抓住市场走向,提高产品竞争力。根据目前已有GIS相关技术成果和技术市场调研,WebGIS体系方案最为成熟,为此产品架构分3步设计:
第一步:用开源GIS方案逐渐替换目前GIS系统;
第二步:使用开源GIS后务必有桌面GIS相关管理应用,开发桌面GIS产品,并在WebGIS基础上将应用扩展到移动端和二三维方向;
第三步:随着应用丰富和项目增多,多个应用可能共用一套数据源、一套基础架构,那么整合起来形成一套流水线产品,提供云SAAS服务,一站式云平台。
2 架构关键技术及框架
架构关键技术主要包括:SaaS(软件即服务)技术、开源GIS、RIA Web和Mobile、开源WorldWind二三维,细分技术并解决方案:
(1)开源GIS技术产品方案:Udig+Geoserver +第三方组件类库做桌面GIS;
(2)RIA:作为富应用,GeoServer+Openlayer+PostGIS+GeoWebCache做WebGIS方案;GeoServer+MapBox/Leaflet+HTML5做移动端方案;
(3)开源WorldWind二三维:WorldWind+GeoServer/ArcGIS+数据库做桌面三维客户端,同时三维Web方面考虑Cesium+HTML5,实现web与移动端三维;
(4)SaaS整合应用:提供一套可配置的软件平台,即客户通过平台进行自定义配置即可使用相应的软件服务,将软件以服务方式提供使用。
图1 引擎与服务框架
此为本次开源GIS架构方面内容。