`
cdguiyi
  • 浏览: 15914 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于WebGIS开源解决方案的探讨(转载)

阅读更多

1.背景

公司目前的多数项目采用的是ArcGIS产品+Oracle+WebLogic/Tomcat/APUSIC/WebShpere这样的架构。由于 公司从事的是政府项目,甲方单位普遍均采购有以上产品,所以很多时候忽略购买以上产品所需要的费用。并且很多项目的推广,ARCGISIBM还有联通或 者移动是公司的合作伙伴,涉及到商务问题,对开源的需求并不是很大。再则,政府项目一般侧重的是系统的稳定和易维护,所以他们在基础建设上投资比较大方。

不过随着政府经费的控制趋于严格,管理者水平的提高,对相关软件的购买开始谨慎起来。目前,公司越来越多的项目现场是没有ArcGIS产品的,虽 然,我们已能利用GeoServer来代替ArcGIS Server使用,也推出了相应的产品,并且在很多个项目中已经运用,但是仍然是有不足的。

2.目前公司GIS开源项目的不足——没有全套的开源解决方案

A.底图的整体处理还是用ArcGIS Desktop来进行的配置,然后将配置好的底图用ArcGIS切图。

B.虽然利用本地瓦片文件作为底图,绕开了地图的在线服务,但是就切图工具来说,虽然公司有自己的切图软件,但是普遍采用的还是ArcGIS的工具切好图了再给现场实施。

C.涉及到空间数据的管理时,依然是用的ArcGIS Catalog+SDE导入到Oracle数据库中。不涉及到大量空间数据库管理时,是采用的直接通过GeoServer来修改shp数据。并没有统一管理,也不利于其他业务组获取数据。

D.目前基于GeoServer的项目,空间分析能力不强。部分功能已经探索出来,但是还没有在专门的空间分析产品上做出GeoServer版本。

3.WebGIS通用型全套开源解决方案

根据开发环境,可以将主流的WebGIS开源解决方案分成两派,一派是C/C++,一派是java

C/C++的解决方案为:Mapserver(服务器)+QGIS(桌面软件)+Tomcat(中间件)+PostGIS|MySQL空间扩展(数据库)+Openlayers(JS)/ openscale (FLex)(浏览器客户端)

JavaEE的解决方案为:Geoserver(服务器)+uDig(桌面软件)+Tomact(中间件)+PostGIS|MySQL空间扩展(数据库)+Openlayers(JS)/ openscale (FLex)(浏览器客户端)

3.1MapServerGeoServer的总体对比

功能上:MapServer弱于GeoServerQGIS要强于UDIG

效率上:MapserverWMSWeb Map service)的支持更为高效,而Geoserver则更擅长于结合WFSWeb Feature service)规范的属性查询。

以下是来自于http://www.cnblogs.com/mazhenyu/archive/2013/03/16/2963177.html统计的MapServerGeoServer的使用量趋势图。

 

 

3.1.1 MapServer的特点

提供两种工作方式,CGI方式(适用于CGIAJAXFLEX开发人员)和MapScript方式(适用于PhpJavaC#Python开发人员)。以原生CGI方式效率最高,配合TileCache,可以快速生成大范围的地图瓦片数据。比较基于.NetJ2EE的商 业或开源平台,MapServer更适合高负荷的大型互联网地图应用。MapServer 是基于C写的地图服务软件,比用JAVA写的GeoServer速度要快。而且 MapServer 历史要比 GeoServer 悠久,甚至MapServer 的性能与商业的 ArcIMS 的功能可以娉美。

3.1.2 GeoServer的特点

GeoServer(http://geoserver.org/) 是一个符合J2EE规范,且实现了WCSWMSWFS规格,支持TransactionWFS(WFS-T),其技术核心是整合了颇负盛名的 JavaGISolkit--GeoTools。对于空间信息存储,它支持ESRI ShapefilePostGISOracleArcSDE等空间数据库,输出的GML档案满足GML2.1的要求。由于它是纯Java的,所以更 适合于复杂的环境要求,而且由于它的开源,所以开发组织可以基于GeoServer灵活实现特定的目标要求,而这些都是商业GIS组件所缺乏的。 GeoServer作为一个纯粹的Java实现,被部署在应用服务器中,简单的如Tomcat等;它的WMSWFS组件响应来自于浏览器或uDig的请 求,访问配置的空间数据库,如PostGISOracleSpatial等,产生地图和GML文档传输至客户端。

具有以下优点: 1) 用 java 语言编写、标准的 J2EE 框架、基于 ser vlet STRUTS 框架、 支持高效的 Spring 框架开发; 2) 兼容 WMS WFS 特性、支持 WFS-T 规范; 3) 高效的数据库支持 PostGISShapeFileArcSDE,OracleMySQL 等; 4) 支持上百种投影; 5) 能够将网络地图输出为 jpeggifpng 等格式;

3.2QGISuDig的比较

A.界面:QGIS优于uDig

B.空间分析能力:QGIS优于uDig

C.发展趋势上:uDig优于QGIS

D.操作上:uDig优于QGIS

E.支持的数据源上:uDig优于QGIS

 

QGIS的界面:



 

 

uDig的界面:



 

 

3.3 PostGISMySQL空间扩展的对比

根据http://www.cnblogs.com/shanyou/p/3256906.html所提供的观点,下面将其截取总结。

3.3.1 PostGIS的特点

A.PostgreSQL 的稳定性极强。

B. 任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑。

C. PostGIS多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下MySQL就差很多,instagram就是因为PostGIDS的空间数据库扩展POSTGIS远远强于MySQLmy spatial而采用PGSQL的。

D. 对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有MySQL的同步是基于 binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提 供stream复制。

3.3.2mySql空间扩展的特点

A.MySQL有一些实用的运维支持,如 slow-query.log ,这个PostGIS肯定可以定制出来,但是如果可以配置使用就更好了。
B. MySQLinnodb引擎可以充分优化利用系统所有内存,超大内存下PostGIS对内存使用的不那么充分,
C.MySQL的复制可以用多级从库,但是在9.2之前,PostgreSQL不能用从库带从库。
D.从测试结果上看,MySQL5.5的性能提升很大,单机性能强于PostgreSQL5.6应该会强更多.
E.对于web应用来说, MySQL5.6 的内置MC API功能很好用,PostgreSQL差一些。

4.适合公司的解决方案

4.1原因

公司的后台均由Java编写,所以选择肯定更偏向于基于JavaEE的解决方案。且我们GIS组已经在GeoServer的开源框架上进行了相关开 发,比如最短路径服务的开发和道路优化的开发等,并且已经能很好的利用GeoServer提供的WMS服务和WFS服务来进行替AGS化,而且还编写了面 向GeoServer的项目配置和发布工具。

同时,公司的V14GIS产品前端采用的是ArcGIS_JS,并且已经对其方法进行了大量封装和整合。

所以,适合目前公司的GIS开源化的解决方案应该是首选:

Geoserver(服务器)+uDig(桌面软件)+Tomact(中间件)+PostGIS(数据库)+ArcGIS_JS (JS)

对于老项目,只需要将js部分换成我们已有的基于Flex的产品即可。

4.2具体解决方案

A.利用PostGISshp数据入库管理。

B.利用uDig连接PostGIS后进行配图。uDig可以生成sld文件,以及发布到GeoServer的样式服务上去,从而实现对服务的配图控制。

C.利用GeoServer来代替ArcGIS Server。通过WMS服务可以实现类似于AGS中的export出图方式,实现部件图层的动态出图。通过WFS服务能实现与类似于AGS中的 Query服务。通过WFS服务也可以实现类似于AGS中的FeatureServer服务,从而进行图层的编辑。同时,通过WFS服务还能实现类似于 AGS中的GeometryServer服务,实现比如union等功能。

D. 利用GeoWebCache插件,可以实现类似于AGS中的cache功能。同时支持切图。

E.利用GeoTools,可以在后台开发复杂的空间分析和相关操作的功能。

5.亟待解决的问题

5.1技术问题

A.需要验证GeoWebCache的配置和切图功能。以及对GB以上数据的切图效果。

B.需要验证PostGIS对中文的支持(目前测试是支持的)。以及大数据入库时的稳定性。

C.配图的易用性。目前已测试uDig可以配图生成sld,且能配置比较复杂的图。但是如何能直接将所配的图层发布到GeoServer后,让此sld自动与该图层关联,还没测试。后期还需考虑是否有必要开发一个更简易的配图及发布工具。

D.基于GeoServer的空间分析功能还没有验证,目前只开发了部分。

5.2业务问题

如果GIS方面彻底换成开源方案,MIS、工作流、统计、手机等等业务如何和GIS业务结合?

目前公司对固定业务基本采用同一标准库。不同的业务使用标准库中的不同用户空间。有交互的部分的表共用一个业务用户空间。假如我们GIS部分全部采 用了开源方案,甚至空间数据的管理都采用开源的数据库来进行管理。如何做到和其他业务的整合,也是一个需要思考和通力解决的地方。

我个人觉得,是可以将GIS的空间数据用开源数据库存放,GIS的业务表还是放入到主版本的数据库中,应该是可以解决以上问题的。

但是问题又来了,既然都有主版本所用的数据库了,比如Oracle,又何必还采用开源数据库呢。

不过,经过我最近的研究,GeoServer也是支持Oracle中的数据的发布的,只是有相关的插件要安装。同时,也有不通过SDE将空间数据导入Oracle的方法。

但是,这种方案,有个最大的问题就是操作相对复杂。

5.3 项目实施人员的实施难度加大问题

开源项目的部署实施问题,是对工程人员的一个巨大挑战。同时,维护的难度也会加大。人的问题其实是最大的问题。

而且工程人员的培训所需要的开销也应该是公司必须考虑的一个方面。

第一次发博文,本文转载自:http://www.cnblogs.com/naaoveGIS/p/4187679.html

 

 

分享到:
评论

相关推荐

    符合我公司GIS开源解决方案的探讨

    根据开发环境的不同,可以将主流的WebGIS开源解决方案分为两大类:基于C/C++的解决方案和基于JavaEE的解决方案。 - **C/C++解决方案**: - Mapserver(服务器) - QGIS(桌面软件) - Tomcat(中间件) - ...

    开源架构Webgis解决方案开发指南视频教程

    【开源架构Webgis解决方案开发指南视频教程】 在信息化时代的今天,WebGIS(Web地理信息系统)已经成为数据可视化和地理信息处理的重要工具。本教程专注于开源架构的Webgis解决方案,旨在为开发者提供一套完整的、...

    开源webgis 整套 兼容arcgis

    总结,开源WebGIS提供了一种灵活且成本效益高的GIS解决方案,通过与ArcGIS Server的集成,可以在保持开源优势的同时,充分利用现有商业GIS服务。"trunk"文件可能包含整个项目的源代码,开发者可以通过研究和扩展这些...

    基于ASP.NET与VB.NET实现WebGIS基本功能的探讨

    相比之下,ASP.NET提供了一种更加现代的解决方案。它可以使用多种语言,如C#、Visual Basic等,这些语言均为面向对象的语言,具备更好的代码管理和重用性。此外,ASP.NET在服务器端执行,开发者无需关心客户端的支持...

    基于JAVA的开源软件的WebGIS研究.doc

    【基于JAVA的开源软件的WebGIS研究】 随着GIS(地理信息系统)在日常生活和工作中越来越广泛的应用,网络成为了...通过不断的实践和探索,可以构建出满足不同需求的WebGIS解决方案,进一步推动GIS技术的创新和应用。

    基于JAVA的开源软件的WebGIS研究

    结合开源软件的灵活性、可定制性和易扩展性,基于Java的开源软件WebGIS解决方案为GIS开发者提供了强大的工具和广阔的创新空间。 本研究主要探讨了如何利用基于Java的开源软件构建WebGIS系统,特别是聚焦于Geoserver...

    ArcGIS Engine实现WebGIS模型架构研究

    1. **ArcGIS Engine Developer Kit**:提供了开发者构建解决方案所需的各种组件和工具集。 2. **ArcGIS Engine Runtime**:这是运行定制化ArcGISEngine应用程序的运行环境。 通过ArcGIS Engine,开发者能够实现以下...

    基于Debian Linux的WebGIS平台构建方案研究.pdf

    通过集成这些软件,可以构建一个完整的WebGIS解决方案。 在构建过程中,文章详细介绍了各个组件的安装、配置和集成步骤,包括Apache2与Tomcat7的协同工作、Geoserver的部署、UDig的使用以及OpenLayers的集成。...

    基于开源WebGIS的城市旅游交通电子地图开发研究.doc

    综上所述,基于开源WebGIS的城市旅游交通电子地图开发研究,不仅展示了开源技术在旅游业的应用潜力,也为旅游信息的数字化提供了新的解决方案。随着技术的不断进步,此类电子地图将成为旅游业不可或缺的一部分,为...

    WebGIS项目开发实战(源代码及工程文件)

    ArcGIS是由Esri公司开发的全面地理信息系统,提供了从数据创建、管理到数据分析和地图服务发布的一整套解决方案。在WebGIS项目中,ArcGIS主要提供服务器端的地图服务和客户端的API,使得开发者可以构建交互式的在线...

    flex开发系列书籍:WebGIS框架设计与实现

    ### 基于Flex的WebGIS框架设计与实现 #### 引言 随着互联网技术的飞速发展,网络地理信息系统(WebGIS)已...对于从事WebGIS开发的专业人士而言,掌握Flex技术将有助于构建更加先进、实用的地理信息系统解决方案。

    GIS开发 OSGISWG WebGIS

    开源GIS提供了一种灵活且经济的方式来构建GIS解决方案,因为它们的源代码是公开的,允许用户自由地使用、修改和分发。常见的开源GIS软件有PostGIS(数据库)、QGIS(桌面GIS)、GeoServer(地图服务)和MapServer...

    WebGIS在美国南加州数字城市建设中的应用实例分析

    3. **MapGuide**:开源解决方案,支持多种数据源,但在复杂应用的支持上有所欠缺。 4. **MapXtreme**:强调易用性和快速部署能力,但可能无法满足高度定制化的需求。 #### 五、SVG技术的优势 SVG是一种基于XML的...

    基于OGC规范和Open+Source项目的WebGIS开发与应用

    李建勋提出了结合OGC标准的中客户端模型WebGIS解决方案;王少波则深入研究了WMS规范,并探讨了基于OGC WMS规范的WebGIS关键技术。 #### 三、基于Open Source项目的WebGIS开发 随着开源软件的成熟和技术的进步,...

    基于GeoServer的WebGIS开发.pdf

    - 拥有活跃的社区支持,容易找到问题的解决方案。 - 开源软件,用户可自由下载和使用。 - 提供丰富的RESTful接口,方便与其他Web服务集成。 ### 基于GeoServer的WebGIS开发流程 1. **环境搭建**:首先需要安装Java...

    基于Linux的能源与环境监测WebGIS.pdf

    3. 跨域数据访问策略:在Web环境下,跨域数据访问是一个挑战,文章提出了安全且高效的解决方案,允许用户从不同源获取和整合数据。 4. 动态地图渲染:利用GIS技术,实现地图的动态渲染,根据用户需求动态加载和更新...

    基于Linux的内存式WebGIS设计与实现.pdf

    《基于Linux的内存式WebGIS设计与实现》这篇论文主要探讨了如何利用Linux操作系统,特别是内存管理特性,来优化WebGIS(Web地理信息系统)的性能,以解决传统WebGIS因磁盘I/O瓶颈导致的响应速度慢的问题。...

    基于DXF数据源的WebGIS可视化系统之计算机分析.docx

    【基于DXF数据源的WebGIS可视化系统】是一种结合了计算机辅助设计(CAD)与地理信息系统(GIS)的解决方案,特别适用于农业领域的信息管理和分析。DXF(Drawing Exchange Format)是AutoCAD提供的一种图形交换格式,...

    基于Cordova和Cesium的移动3D-WebGIS系统实现.pdf

    本文将详细介绍一种结合Cordova和Cesium技术的移动3D WebGIS系统实现方式,探讨其设计理念、技术架构以及关键技术实现。 首先,移动3D WebGIS系统的核心是实现三维地理信息的可视化。这要求系统必须能够处理和展示...

Global site tag (gtag.js) - Google Analytics