去年开始 接触 了一些开源 GIS 软件,个人觉得这些软件做的挺不错的,想介绍给使用 GIS 的朋友们。
 
       从空间数据库 说起吧。在空间数据库领域,商业化的产品有 ORACLE SPATIAL ,以及以前的 ARC SDE 等等,而开源空间数据库虽然在功能上略有欠缺,但是在性能上毫不逊色。开源的空间数据库主要是 postgresqlmysql 的空间插件,分别是 postGISmySpatial 。目前由于 PG 对于面向对象支持的更好一些,所以 postGIS 在性能上和功能上都比 myspatial 要强一些。但是两者都有一个最重要的缺陷,就是不直接支持栅格数据。解决方案是将栅格数据存储为 BLOB 类型,并且对其建立四叉树索引,用以模拟商业数据库对栅格数据的存储。相对来说我更喜欢 POSTGIS 一些,原因有三: 1MYSQL 本身不是在所有情况下免费,而 PG 在所有情况下都免费; 2,POSTGIS 性能和功能上都强于 myspatial;3, 国外已经有很多基于 POSTGIS 的成功应用,可以降低风险。
 
       接下来轮到桌面软件了。 QGISGRASS 是很好的桌面 GIS ,当然基于 ECLIPSE 平台的 UDIG 也是另外一个选择。 QGIS 的最大特点在于界面很友好,熟悉 ARCGIS 的人都能很快的掌握 QGIS 的操作,另外 QGISWMS 的支持也不错。再者 QGIS 可以无缝集成 POSTGIS ,最后 QGIS 几乎完全照搬了 GRASS 的分析功能,因此其分析功能也很强大。 GRASS 本是美国军方开发的 GIS ,开源后一直受到美国大学老师们的青睐,它可以提供很多 ARCGIS 能提供的分析功能(当然每一种功能可选的算法没后者多),但是 GRASS 的界面比较丑陋,很多功能需要手动运行命令,因此不太适合大多数人用。基于 eclipse 平台的 UDIG 是桌面 GIS 的又一个选择,由于它是基于 eclipse 平台的,运行起来比较慢一点,而且比较耗内存。与前两者相比,它的优势在于操作的简单性,而且支持很多种空间数据源,包括很多商业空间数据库,缺点主要是分析功能比较弱。不过现在 UDIG 发展很迅速,也建议尝试一下。
 
       开源 GIS 服务器主要有 map servergeo serverMap server 有两个版本,完全免费的那个那个版本是由明尼苏达大学开发的,全部是用 C 语言完成,效率很高可以媲美 ARCGIS SERVER ,并且支持我所知道的所有 GIS 数据源,但是相对来说简陋一些,并且没有内置 AJAX 支持。而 map server 的企业版本来是 auto desk 公司的 map guide, 这个版本功能很强大,而且还有 IDE 支持,当然 IDE 也有两个版本(付费的和不付费的),此外 auto desk 还封装了很多 AJAX 组建,因此这个版本可以说是真的企业级支持了。而 geo server 则是另外的选择了,
它是基于 JAVA 平台做的,安装时需要 JDK1.4 (高版本的也不行),其功能上和 map server 的完全免费版类似,但是性能上次之,只是如果对跨平台要求比较高的话,可以考虑使用它。此外, OTN 上的文章一直喜欢使用 GEO SERVER 来发布 ORACLE  SPATIAL 的地理数据,也不知道是为什么。
 
       此外开源 GIS 客户端技术,也进行的如火如荼,好几个框架都实现了对 AJAX 的支持,
虽然我没有仔细研究这些框架,但是我觉得进行一般的 GIS 应用因该没什么问题。据我所知美国 NASA 就利用 POSTGIS 来管理他们好几个 TB 的空间元数据,而英国陆军部好像使用了 map server 来发布一些他们的地理数据。相比之下,我们国家即使是一个小小的县级市,在做自己门户网站时候,都是使用 ARCGISORACLEWEB LOGIC 的超豪华阵容,其实我们完全可以用 QGISPOSTGISTOMCAT 来实现,这样从软件投入成本来看,我们几乎可以不花一分钱,可以节约多少劳动人民的血汗钱阿。