C++开源GIS中间件类库:
GDAL(栅格)/OGR(矢量)提供了类型丰富的读写支持
GEOS(Geometry Engine Open Source)是基于C++的空间拓扑分析实现类库,遵循LGPL协议发布。GEOS类库提供了丰富的空间拓扑操作函数,用以判断几何对象间的相互关系,以及空间分析操作之后形成新的几何对象。点、线、面要素的两两相互关系,包括相合、分离、相交、重合、包含、相邻等不同位置关系,都可以通过GEOS类库中提供的函数进行分析和判断。并且GEOS类库提供了缓冲区分析(Buffer),外包多边形分析(ConvexHull),交叉分析(Intersection),联合分析(Union),差异分析(Difference),对称差异分析(SymDifference)等集合论覆盖的分析操作运算。
C++开源GIS系统
桌面GIS项目,有GRASS、OSSIM和Quantum GIS这三个代表性的开源项目。
Quantum GIS(QGIS)是一款与GRASS有不少渊源的项目,它更侧重于图形界面标识与地图可视化部分。
Java阵营的开源GIS中间件
GeoTools提供了应用于GIS数据处理和空间分析的丰富类库,底层使用了JTS(Java Topology Suite)来实现空间拓扑和分析功能。
Java开源GIS系统
开源GIS的领导者Refractions Research主持开发了一些列的GIS项目,包括PostGIS、GeoTools、GeoServer等,uDig也是其中非常重要的开源桌面GIS项目。
uDig功能实现遵循OpenGIS的规范标准,提供对于PostGIS、DB2、ArcSDE以及Oracle Spatial等数据源的支持。在网络GIS服务方面,uDig提供的支持尤为完善,网络地图服务WMS和网络要素服务WFS都可以直接在uDig中读入并显示,并且uDig集成了地图服务的WEB搜索功能,可以在网络上查询到相关的地图服务,然后拖动到图层中显示。由于uDig使用RCP平台进行开发,界面风格与操作方式与Eclipse现有的布局,这让习惯于Eclipse使用的用户倍感亲切。
采用GPL协议的JUMP也是基于Java开发。JUMP同样给予灵活的插件结构设计,可以很好的支持矢量和栅格数据格式的显示、编辑和输出,以及常见的空间分析操作。JUMP在教学和快速原型开发方面应用广泛,JUMP爱好者还启动了相关的JUMP Pilot Project及其子项目OpenJUMP等,都为依据JUMP的学习研究做出了不少有益的工作。
其它:
计算几何方面的C++库CGAL
处理ShapeFile矢量文件的开源库ShapeLib
投影转换 Proj.4
类别 | GIS开源软件 | GIS商业软件 |
GIS桌面系统 | uDig、Jump、QGIS | ArcMap、ArcGIS |
GIS分析工具 | GRASS、OSSIM | ArcInfo、ArcGrid |
地理统计 | GNUR | ArcGIS Geostatistical Analyst |
三维虚拟地球 | WorldWing,Earth3D,ossimPlanet | ArcGlobal,Google Earth |
空间数据引擎 | PostGIS | ArcSDE, Oracle Spatial |
关系型数据库 | PstgreSQL,MySQL,Ingres | Oracle,DB2 |
元数据服务 | Isite | ArcIMS Metadata Service |
地图服务 | MapServer, GeoServer | ArcIMS , MapGuide Enterprise |
栅格矢量类库 | GDAL, OGR | |
地图投影 | PROJ.4 |