分享
Scan me 分享到微信

开源再显空间信息魅力

今年9月底,地理空间信息开源界的顶级盛会FOSS4G(Free and Open Soure software for Geospatial)在加拿大落下帷幕,该会议由OSGeo(Open Geospatial Foundation)主办,得到了Autodesk、Google、Leica 、ESRI、Safe 等公司的支持。超过120篇讲演和专题演示几乎涉及了所有开源Geospatial的项目,包括著名的GRASS、OSSIM、PostGIS、Worldwind、GDAL/OGR、FDO等均有专家做主题汇报。基于这些项目在地理数据共享、互操作、无线通信、空间分析、嵌入式终端等方向上均有创新,许多想法和创意是非常值得中国本土的GIS厂商学习和借鉴的。

国际地理空间开源基金会(OpenSouce Geospatial Foundation)2006年初在美国芝加哥成立,基金会的项目已从最初的8个,发展为满足B/S架构的前端地理信息渲染平台、各种地理空间中间件、涵盖企业级地理空间计算平台等数10个门类的开源地理空间项目,是开源地理空间信息技术重要的汇聚地。

目前开源世界已经日趋庞大,纳入IT的主流,国外Linux、MySQL和Apache等项目已经拥有很高的市场份额,各大软件公司都有参与和介入,是当前信息产业发展的巨大推动力。在知识经济与经济全球化的时代,资源环境与地理空间信息资源是现代社会的战略性信息基础资源之一,地理空间信息产业已成为现代知识经济的重要组成部分,开源地理空间信息技术的发展加速了地理空间信息技术的自主创新。截止2007年11月中旬,在地理空间信息开源界著名的freegis索引系统中可以寻找到的开源地理空间信息软件项目多达325个,项目繁多,条目繁琐,很多项目都是父子或叔父的关系。

本文将积极吸纳FOSS4G 2007年会中最新开源项目的技术进展,首先横向介绍开源地理空间信息技术家族,进而从地理空间技术架构的角度,纵向按照GIS客户端技术、开源桌面GIS、开源组件GIS、开源服务器端GIS、开源空间数据库等几个层级结合FOSS4G会议中比较有代表性的几个实际的项目进行对比和分类,抽丝剥茧,调理出之中的关系;最后将部分项目与商业软件进行对比,以供广大的技术爱好者和工程师参考。

开源地理空间信息技术家族

图1是本文着重讲解的近20个项目,其中MapServer、GRASS、FDO、GDAL/OGR、OSSIM、Proj4、GEOS、PostGIS、QGIS、MapGuide OpenSource以及MySQL等均使用C或C++语言撰写。基于C语言撰写的开源地理空间信息项目是成熟也是拥有开发项目最多的,这与C语言本身的发展历史以及与Unix渊源是分不开的,因为其语言的强大和优异性能已经吸引了大量活跃的开发社区和开发者个人。

从图1中我们可以大概了解基于C语言撰写的最有代表性的几个大型项目的隶属关系,其中灰色标志着该项目已经成为诸多其他项目的通用基础,比如空间数据格式的支持以及坐标投影转换功能,这点也是与空间信息与通用软件项目的重要区别。

开源桌面GIS

GRASS是最具有传奇色彩的大型GIS系统,最早由美国军方建筑工程研究实验室构建与维护,后来贡献给开源社区。目前GRASS已经覆盖了大多数GIS系统的操作函数,超过300个经典的算法,是开源版的ArcGIS。它是Unix平台的第一个GIS软件,同其他Unix软件一样,吸引了多家联邦机构、大学和公司的参与研发。

1988年,GRASS 3.0软件包的发行达1000余个。GRASS软件曾经三次获得美国联邦政府的有关奖项。目前在全球政府,科研及大学部门广泛使用。最新的6.3.1版本的GRASS增加Sqlit数据库驱动,修改了包括r.flow等40个左右的算法包,修正了若干Bug,对最新的OGC WMS规范也有了良好的支持。

QGIS也是一个用户界面友好的地理信息系统,目前能够很好得支持PostGIS空间数据库,最新0.9版本的QGIS开始增加对WMS的支持,同时改进了矢量数据和属性数据的编辑,增加了属性信息的搜索。

最为重要的是其重构了QGIS的API库,方便用户可以进行二次开发,修改了矢量图层的透明和反锯齿,增强了矢量数据编辑,这包括复制、剪切、黏贴和节点捕捉等。在去年的版本中,QGIS可以很好的支持GRASS的算法接口,成为GRASS一个重要的前端表现工具,为GRASS的发展起到了很好的推动作用。

另外,由于QGIS基于QT跨平台类库开发,因此QGIS目前支持最为广泛的操作系统Linux、Unix、Mac OSX和Windows,这一点是其他很多桌面地理信息系统软件所不可企及的。

今天QGIS全球已经有了1209个注册用户,超过10万行的源代码,被广泛应用到政府、科研、咨询等多个领域。已经成为一个通用的矢量和栅格数据格式的浏览器,可以编辑SHP和PostGIS数据图层,可以作为一个前端工具操纵GRASS后台的模块和数据,可以基于C++和Python进行二次开发。在即将发布的1.0版本中,QGIS将稳定的API接口提供给开发者,进一步增加其稳定性和用户体验,包括在标注、布局、制图,以及大数据量的处理和可用性方面继续增强。

另外一个重要的桌面产品为udig,在2007年改动不大,重点是更新了编辑和新建工具,为用户提供了更加良好的用户体验,用户可以在数分钟内完成数据的处理工作,在其他方面也做了很多细微的改进和提高。

开源GIS客户端

OpenLayers(http://openlayers.org)是一套免费的开源Javascript脚本库,提供给开发人员大量的工具集,最早来自MetaCarta实验室,目前已经为多个开源项目服务。OpenLayers可以非常容易的在任何Web页面中集成动态地图,同时支持地图分块和多类型数据加载,这套开放的脚本库支持BSD协议。

Worldkit(http://worldkit.org)是一套开源的以Flash技术作为外壳的地图客户端,它可以非常方便的集成各种数据格式的地图数据。它不同于全部依赖脚本实现的Openlayers项目,借助Flash跨浏览器支持的能力,可以非常方便的在Flash环境下完成对地图的操作,同时Flash也可以很好的运行在移动设备中。

Camptocamp是苏黎士的一家基于开源技术的解决方案提供商,主要提供技术咨询和培训,通过广泛的调研发现在网络地理信息应用领域中,只有CartoWeb4积极吸纳了包括DOJO、Python等若干开源技术,打造了最新产品的体系架构。

开源组件GIS

MapWinGIS在国内声音一直不多,但是其作为开源组件GIS项目的地位是不可撼动的。1998年犹他州州立大学Daniel博士在撰写其博士论文《基于贝叶斯评价网络的流域管理》论文时发现,当时ESRI公司的商业GIS组件产品MapObjects LT在很多时候不能满足其工作需求,于是他基于微软的COM技术倡导并研发了MapWinGIS组件,期望该项目的研究成果可以成为开源地理空间软件界一个可以替代MapObjects的产品,最终服务于科研人员。

经过7年的发展,MapWinGIS作为一个ActiveX控件可以非常快捷的在VB、.NET等编程语言和开发环境中完成基本地理信息系统功能的显示、查询和操作等基本功能操作。

开源服务器端GIS

MapGuide OpenSource(简称 MapGuide OS)是Autodesk公司在MapGuide6.5产品为蓝本的基础上,参考最新IT技术重新研发的大型网络空间信息平台。Autodesk公司已将包括FDO等技术的MapGuide源代码都贡献给了OSGeo,在充分利用开源技术优势的同时,也促进了该项技术在全球范围内的广泛使用。

其商业版本Autodesk MapGuide Enterprise正是基于MapGuide OpenSource基础上开发的。在充分利用开源社区创新能力的同时,该产品的愿景是成为基础设施市场上智能解决方案的领先平台,可以基于此搭建适合在网络运行的地理空间门户网站或应用系统。

MapGuide OS采用了标准的C++撰写内核,在高效的内核外,项目的开发人员又增加了对PHP、NET和Java三种不同语言的开发包,以适应不同类型程序员的需求。这非常符合当前混源IT架构的状况,MapGuide OS可以在保证增加一个API的基础上,对三套不同的开发类库均适用。

2006年底,Bob Bray被任命为Autodesk地理空间信息总架构师,同时也担任OSGeo推动委员会的主席。Bob Bray多次宣称在今年的MapGuide OS的开发过程中,重点仍然放在产品的性能和质量上,产品的功能将会更多的考虑市场对企业级功能需求,进而将对企业级的支持部分纳入到整个服务器端的地理空间架构中。同时他还多次讲到Enterprise和OpenSource版本的MapGuide将继续共享同一套源代码库。

从刚刚正式发布MapGuide 1.2开始,已经引入了DM公司的Fusion技术,该技术最早是一套服务于网络地理空间信息的SDK,包含了大量的工具和模板,其内核引擎和外部的工具集全部开源,几乎不需要任何的程序开发。

MapGuide具有良好的扩展性,功能接口相对独立,基于HTML、CSS、Javascipt、JSON和XML等工业标准规范搭建。从功能上看,它可以弥补当前MapGuide OS的诸多不足,如灵活性不够,难以进行二次开发和修改页面布局困难等。今年10月15日,基于Fusion技术的Ajax客户端已经更新完毕,在今年年底会增加对OGC规范支持的工具包。

开源空间数据类库

1.FDO

2006年初,Autodesk公司贡献给OSGeo的还有类似于微软ODBC技术的“空间数据版”——FDO(Feature Data Object)技术。基于该技术,前端的地理信息系统平台可以快捷访问大型关系型数据库,基于使用强大的关系型数据库管理系统,不仅可以支持数百人甚至数千人创建、编辑并管理同一份数据,还提供了更灵活的扩展性、更高的安全性,并能创建更完善的数据模型。

2.GDAL/OGR

数据是一切软件的血液,空间信息产业更是如此,海量数据在空间信息软件行业体现的最为明显,没有一套高效率的数据转换模型和类库很难完成异构数据的集成和融合,正是有了GDAL/OGR,构建在之上的各类空间信息软件项目才有了生命力。

GDAL提供了一整套读写不同栅格数据格式的功能的抽象类库,而OGR则是一个读写诸多矢量数据格式功能的抽象类库。

3.GEOS

GEOS是“Geometry Engine, Open Source”的含义,提供了OGC规范中简单几何要素对象操作的C++语言的实现。在地理信息系统领域,拓扑模型是重要的,其计算方法简单但是难得以实现。使得GEOS不同于其他项目的也正是“空间谓词”与“空间操作”。

开源空间数据库

相对于Oracle、DB2、SQL Server昂贵的价格和并不实用的功能而言,PostgreSQL师从名门,开源界性能最优秀的数据库软件当属PostgreSQL数据库,而构建在其上的空间对象扩展模块PostGIS则使得其成为一个真正的大型空间数据库。PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,PostGIS提供如下空间信息服务功能:空间对象、空间索引、空间操作函数和空间操作符。

同时,PostGIS遵循OGC的规范,是开源版的Oracle Spatial、ArcSDE,目前绝大多数的开源地理信息软件平台都选择PostGIS作为主要的空间数据库存储方案。

除了对空间存储和管理之外,基于PostgreSQL和PostGIS的pgRouting算法包,则侧重于服务于路径分析功能,目前包括经典的Dijstr、A*和Shooting*算法,同时提供了对旅行商问题的解决方案,以及行程距离的计算,针对城市中的单行线、红绿灯等问题都给于了强大的支持。

NASA大气科学数据中心目前存档的各类影像和科研数据总量有大概两个PB。

当前,大气科学数据中心正在使用一个SGI服务器上的Informix Geodetic DataBlade数据库存储这些影像和科研数据的空间元数据,大气科学数据中心同时也提供了基于Web方式的查询功能。为了减少投资和购买,大气科学数据中心采用PostGIS搭建了整个空间元数据查询系统,满足了系统的需求。

除了Autodesk之外,世界著名的公司也参与到开源地理空间技术中,在2008年发布的ArcGIS 9.3中ESRI将增加对PostgreSQL 8.2版本的支持,这是商业地理信息系统软件与开源整合的又一实例。

我们习惯在比较中分析问题,诸多的开源地理技术已经日趋成熟,很多项目也已经完成了原型的搭建,并拥有了一定优势,商业公司也看到了其创新性,并积极参与到开源的研发中。

最后,笔者将开源地理空间软件与商业的SuperMap系列软件进行大致对比中可以发现,目前开源软件在功能上已经可以完成商业软件类似的功能。

相对于安装方便,帮助文档齐全的国内用户而言,开源软件对用户的要求非常高,用户往往需要专家级的GIS基础概念,需要对多操作系统、多数据库、多格式有所掌握,才能真正将开源地理空间软件使用起来。短时间来看,目前国内使用开源地理空间软件的用户主要仍然是大学和科研院所。

对于行业用户而言,也许更关心的是软件产品的可扩展性,良好的一致性以及稳定性等,从这点意义上讲,目前地理空间技术发展迅猛,越来越多的行业和专家加入到研究和学习地理空间技术的行列中来,相信开源地理空间技术会有更大更好的发展。

 

参与评论

【登录后才能评论哦!点击

  • {{item.username}}

    {{item.content}}

    {{item.created_at}}
    {{item.support}}
    回复{{item.replynum}}
    {{child.username}} 回复 {{child.to_username}}:{{child.content}}

更多精选文章推荐

下一篇

吴旻晖:与Autodesk结缘十一载

泰伯APP
感受不一样的阅读体验
立即打开