1.4 常见的地理信息系统平台
除了QGIS,还有许多成熟的GIS软件和工具,每种GIS软件都具有各自的特点和优势。在实际的工作和生产中,我们需要根据实际需求选择合适的GIS软件。因此,本节介绍当前GIS行业广泛使用的GIS软件,供读者参考。按照分发方式的不同,本节将这些GIS软件划分为开源GIS软件和商业GIS软件。
商业GIS软件往往已经平台化,每种商业GIS软件已经各自组成了完整的产品体系,如ESRI的ArcGIS产品体系、中地数码的MapGIS产品体系、北京超图的SuperMap产品体系等。每种GIS产品体系基本已经针对桌面GIS、移动GIS、服务器GIS、客户端GIS等生产了相应的软件。因此,我们只需要掌握其中一个产品体系,就可以完成所有的GIS功能与需求。
开源GIS软件与商业GIS软件恰恰相反,单一的开源GIS软件或工具常常只为了实现某个目的而研发。在实际工作中,我们常常不能使用一个开源GIS软件完成某个项目或某个课题的所有工作。这主要是因为开源GIS软件作为开源软件大家庭的一分子,其设计理念也深受GNU组织及UNIX哲学的影响,即每个开源的软件和工具都应当具有专一性。例如,在GNU Linux操作系统下,tar和gz分别为打包和压缩工具,所以压缩文件的后缀名常为tar.gz这样的形式;而在Windows操作系统下,一个简单的zip和rar就可以完成上述两个功能。类似的,QGIS为了实现数据浏览和地图制图功能,在空间分析和GIS服务方面的功能非常弱;SAGA GIS则更专注于地理处理与空间分析功能,因此其制图能力较弱。这种开源软件设计的目的在于充分利用开源软件的开发者的资源,尽量避免“重复造轮子”,将更多的精力放在更前沿的开发工作上。
因此,在一定程度上,闭源/商业软件往往针对一个完整的工作流或用户需求而研发,而开源/免费软件往往针对一个具体的功能而研发。因此,我们在学习QGIS的时候,不能仅仅着眼于QGIS本身,更要尽可能地掌握多个开源GIS软件和平台,从而提高解决GIS相关问题的能力。
开源世界几乎没有产品体系的存在,因此我们常用工具链(Tool Chain)将多个开源软件或工具聚合在一起,完成一个庞大、复杂的工作。例如,为了基于开源GIS软件和工具实现一个大型的GIS应用系统的研发,可以选择如表1-5所示常用的开源GIS工具链。
表1-5 常用的开源GIS工具链
上述两个工具链是Java语言和C/C++语言体系下的典型GIS工具链。当然,我们也不能局限于上述工具链的工具组合,还要根据不同GIS工具和软件特征进行合理的选择,以符合实际的业务需求。
QGIS虽然是一个优秀的桌面GIS软件,但若没有MapServer、OpenLayers等GIS软件和工具的发展与配合,就无法形成当今的开源GIS软件生态系统。读者应该对QGIS有一个良好的定位:一方面,单一的QGIS无法完成所有需求,并且QGIS内部也集成了SAGA GIS、GRASS GIS等多种开源软件,学习其他的开源GIS软件是用好QGIS的有效补充;另一方面,掌握多种开源GIS软件和工具,可以帮助更高级的QGIS用户选择合适的开源GIS工具链。
另外,开源GIS软件与商业GIS软件相辅相成,共同发展,例如,在ArcGIS的底层用到了诸如GDAL/OGR的开源GIS类库,QGIS等软件设计也参考了ArcGIS等商业软件。在实际应用中,我们应当根据需求选择合适的GIS软件,不应该偏执于某个软件,否则不仅不会提高工作效率,反而会陷入困境。