1 文档首先划清了开源的界限,用以下几个问题来评估一个项目是否属于OSS —— “是否有良好的文档,开发团队是否透明,软件是否模块化,开发社区的广泛度如何,用户社区的广泛度如何”。
2 按照实现语言,开源GIS项目开发人员可分为C语言部落和Java语言部落,C语言部落包括参与Mapserver、GRASS、GDAL、OSSIM、 Proj4、GEOS、PostGIS、qGIS、Thuban和OpenEV的开发人员,同时也包括使用易于绑定到C语言的脚本语言(如Perl、 Phython、PHP)的开发人员;Java语言部落包括参与GeoServer、GeoTools、JTS、JUMP/JCS、DeeGree项目的 开发人员。
不同语言实现的软件之间也有交互,如用JDBC访问PostGIS,通过JNI使用MapServer。
另外也有不属于这两类语言的项目,如Web应用,提供基于浏览器接口的工具集和Web服务。
3 C语言开源项目如下图,其中灰色块表示的是用于多个应用软件的共享库:

4 Java语言开源项目如下图,其中灰色块表示的是用于多个应用软件的共享库:

5 C/Java开源GIS项目简介:
GDAL/OGR,GDAL为栅格数据或模块提供读写多种栅格格式的抽象库,OGR为矢量数据或模块提供读写多种矢量格式的抽象库;
Proj4,一个负责坐标投影的库;
GEOS,JTS拓扑库的C++实现,实现了OpenGIS简单要素规范中的要素类型;
OpenEV,最初为Linux开发的GIS桌面应用程序,现也有Windows版本,使用OpenGL图形库,能够快速浏览较大图形文件,结合DEM文件能够创建3D显示;
Mapserver,UMN开发的Web地图服务器;
GRASS,本来是1982年启动的一个美国军方项目,1999年开源,具有栅格、矢量分析能力,是具有较长历史的建模分析工具,拥有大量的模型;
OSSIM,栅格处理工具链,最初由ImageLink公司开发并应用到其软件产品中,OSSIM将图像处理任务切分成多个独立、可并行执行的组件,这些组件能够重组成不同的处理流软件并可以并行运行在机群上来获得提高计算能力;
QGIS,使用QT图形工具包开发的GIS桌面应用程序;
Thuban,使用Phython开发的GIS桌面应用程序,使用WxWindows跨平台图形工具包;
TerraLib,一个GIS功能类和函数的库,实现了元数据模型、空间模型、应用模型、地理编码模型、空间统计模型等数据和服务模块,源自巴西,文档是参杂部分英文的葡萄牙语写成的;
GMT,被设计成一组数据处理和图形生成的小程序,而这些小程序能够串起来用脚本粘接成复杂的数据处理链;
PostGIS,为PostgreSQL数据库添加了空间数据库的功能,扩展内容包括空间对象、空间索引、简单的分析功能、谓词和算子(GEOS)、坐标系统元数据、坐标投影支持(Proj4)、数据导入和导出工具;
GeoAPI,为执行各种地理操作提供标准方法的Java接口库,与ISO和OpenGIS相应规范呼应,希望将GIS的所有Java项目统一在单个接口规范之下;
WKB4J,Java语言实现的WKB(well known binary)解析库,提供Java和WKB格式空间数据源之间的高速互连;
JTS,实现了OpenGIS的简单要素规范,实现了健壮的空间谓词(拓扑关系判定),也包括空间算子(差、并、缓冲等);
Geotools,目标是要开发一个框架中的Java对象核心集,能够使得其他人较容易地开发OGC兼容的服务,包括核心接口API和接口的缺省实现,具有良好的模块化结构,各个OGC规范和数据源都用独立的模块来支持;
GeoServer,WFS规范的J2EE实现,建立在GeoTools之上,还支持Z39.50目录服务(OGC目录服务的一部分);
DeeGree, 消息传递系统的体系结构,实现了WMS 和WFS服务器,GTS、GCS等部分实现,独特的体系结构同时也增大了代码理解的难度,作为CITE项目的一部分,GeoTools和DeeGree协 调开发底层数据模型,将DeeGree的功能(如WMS)带入GeoTools/GeoServer;
JUMP,用于“JCS Conflation Suite”解决数据整合问题的可视化和用户界面工具集,设计能够嵌入空间对象合并算法的可插入环境;
gvSIG,西班牙的一个项目,要提供一个应用开放标准、平台独立的开源工具,设计目标是模块化、互操作性、开源、基于标准、较低开发成本、跨平台;
OpenMap,建造空间应用程序的Java语言组件库,代码有些老化;
uDig, 代表“User-friendly Desktop Internet GIS”,接合GeoTools的设计、数据结构、标准优势,JUMP的用户界面、渲染、互操作优势和Eclipse富客户端平台的可扩展性、工业开发标 准的优势,生成一个新的桌面GIS编辑器,并能够与广泛的本地、网络数据源交互。
6 Web项目
Chameleon,开发Web地图应用的分布式、可配置环境,基于WMS和WMT Viewer Context标准,包括一组能够放置于HTML模板文件中的提供特定功能的组件,并可以配置组件的表现形式;
Community Map Builder,用JavaScript实现了Web Map Context规范,能够显示和控制来自不同WMS服务的不同map;
Mapbender,提供显示、导航和查询WMS相兼容地图服务的能力,其框架包含用户和组管理、访问WMS所生成地图等功能的接口,下一步将支持WFS和目录服务;
quickWMS,WMS客户端的轻巧实现,JavaScript类组,容易使用但功能简单且有较多的错误;
ka-Map,JavaScript实现的Ajax Web Map客户端,包括基于MapServer的服务端支持代码,客户端显示流畅,但和MapServer关联很紧,客户端和服务端代码关联太紧,不是纯粹的WMS客户端。
7 开源GIS项目在体系结构上的分布图:

可见,当前的开源GIS软件已覆盖从底层到桌面应用到Web应用的方方面面。
二、开源GIS项目的聚集站点
SourceForge,拥有OpenEV、GeoAPI、GeoServer、DeeGree、Map Builder、quickWMS等
MapTools,拥有Chameleon、ka-Map等
Refractions,拥有GEOS、PostGIS、uDig等
RemoteSensing,拥有GDAL、Proj4等
FreeGIS、OpenSourceGIS,汇总GIS开放软件和数据的信息,维护开放GIS项目的索引列表

没有评论:
发表评论