原文 开源GIS
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
开源gis(ZZ)转自()
平台的对峙 ()
开发者都希望自己的软件能够运行在尽可能多的计算机上。然而事与愿违,摆在 GIS开发者面前的仍然是对峙的平台。J2EE随着Java5。0的发布,已经正式更名为JavaEE,而微软也正式发布了。NET2。0以及集成开发环境利器Visual Studio 2005。到底是。NET还是Java? 面对旗鼓相当的Java和。NET阵营,其实GIS平台开发商的答案早已揭晓,那就是都要!由于。NET和Java比较起来并无明显的优劣之分,只是随应用的需要和习惯的差别而略有不同,因此提供Java和。NET的双份开发接口来满足不同的需求也就不难理解了。可实际中,若要同时支持Java和。NET 谈何容易!要知道GIS的出现是上个世纪60年代的事,在当代众多IT缩写词出现之前,GIS就已经在城市规划、土地管理、军事等行业得到了应用。几十年的积累,很多代码已经成为了固化的资产。GIS平台开发商经历过二次开发语言的繁荣和凋敝,组件时代的兴起和衰落,而今又要面对平台对峙的挑战。也经历许我们应该考虑一些更好的、更彻底的解决办法,能够让我们在这个多变的时代找到相对稳定的支点。事实上,这个问题已经有了比较好的答案,办法其实也很简单,那就是重回C/C++的荣耀之都,实现GIS内核和外壳分离,以适应不断变化的外部世界。其实这个办法也不是GIS一家的专利,使用C/C++编写程序,实现一次编写,到处编译。这也是很多软件采取的跨平台策略。相比之下,无论是在Java组件和COM之间架桥还是在Linux和Windows之间修路,总显得有些不够优雅。不出意外,平台的对峙在未来的几年还会持续下去,在这对峙的平台下开发,也许最能彰显我们开发者智慧。
全球的数据