除了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软件,不应该偏执于某个软件,否则不仅不会提高工作效率,反而会陷入困境。
全球的开源GIS软件与工具多种多样,绝大多数OpenGIS软件都由自发的社区进行支持和研发。
虽然使用这些软件的时候需要区别自由(Free)软件和开源(OpenSource)软件,但是表1-6所列的开源GIS工具基本都是自由且开源的,即它们都是自由开源软件(Free and OpenSource Software,FOSS)。但是,各种软件采用的开源协议有很大区别,希望读者在使用和开发过程中注意这一问题。同一用途的开源GIS软件往往有很多种(通常属于不同的语言或运行环境):
· 桌面GIS软件:QGIS、GRASS GIS、uDig、SAGA GIS、Marble、gvSIG等。
· WebGIS服务器:MapServer、GeoServer等。
· WebGIS客户端:OpenLayers、OpenScale、Leaflet等。
· GIS底层类库:GDAL/OGR、GeoTools、GEOS、FDO(Feature Data Objects)、OTB(Orfeo Toolbox)等。
· GIS数据库支持:PostGIS、SpatiaLite、MySQL Spatial等。
由于篇幅的限制,本书仅介绍和对比了与QGIS存在竞争关系的开源桌面GIS软件,如表1-6所示。
表1-6 常见的开源GIS软件及其对比
* W表示Windows操作系统;M表示Mac OS操作系统;L表示Linux操作系统。
下面逐一介绍主要的开源桌面GIS软件。
1. GRASS GIS
GRASS的全称为地理资源分析支持系统(Geographic Resources Analysis Support System),主要功能包括数据管理、地图制图、空间建模和可视化分析。GRASS GIS起源于1982年,是最古老的开源桌面GIS软件,也是OSGeo的初创成员之一。GRASS GIS的创立源于美国军方对土地管理与资源规划的需要,美国军方在政府、大学和民间机构招募了大量的志愿者参与开发。因此,GRASS GIS的用户群体非常庞大,用于全球的学术领域和商业领域。
GRASS GIS的主要特点如下:
· 独特的数据管理方式:基于GRASS数据库(DataBase)、区域(Location)和地图集(MapSet)的管理模式。
· 命令行操作方式:GRASS GIS虽然有自己的用户界面,但是仍然倡导命令行操作方式。在Windows操作系统中可以通过cmd执行命令,在Linux操作系统中可以通过bashshell执行命令。
· 稳定、快速的处理模块:GRASS GIS的空间处理模块非常清晰,而且每次执行功能的时候,只需要运行必需的模块,节省了系统资源,更适合高级用户使用。
由于独特的数据管理和命令行操作方式,GRASS GIS的学习成本很高,易用性较差。但是,由于GRASS GIS工具的良好组织,以及实用性和稳定性,使其具有很强的生命力。
2. SAGA GIS
SAGA的全称为自动地球科学分析系统(System for Automated Geoscientific Analyses),是一个专注于地理空间数据处理的桌面GIS软件。SAGA GIS最初由德国哥廷根大学发起,2007年将项目转到德国汉堡大学继续研发。SAGA GIS主要针对气候、水文、土地等研究领域,提供相关的多种地理处理工具。SAGA GIS的第一个目标是给予地理学者一个高效且简单、易学的地理科学算法的实现平台,这是通过SAGA GIS独特的API实现的。SAGA GIS的第二个目标是让这些算法通过一个用户友好的界面进行访问与操作,因此它配备了一个GUI。但是,SAGA GIS在GIS数据编辑和制图方面的功能很弱,因此它经常被嵌入其他的GIS软件平台中,例如,SAGA针对ArcGIS平台设计了ArcSAGA,QGIS也将SAGA嵌入自己的工具箱中。
SAGA采用C++语言编写,这使其具有非常高的计算效率。从SAGA2开始使用跨平台的GUI库wxWidgets制作用户界面,因此其可以运行在Windows系统和Linux系统中。
3. gvSIG
gvSIG诞生于2004年,是一个简单、易用且具有一定可扩展性的开源桌面GIS软件。gvSIG原本是西班牙加泰罗尼亚自治区的信息技术系统中的一个工程。随着gvSIG的推广和应用,2010年以后其由新成立的gvSIG协会接管。经过多年的发展,gvSIG已经形成了多个版本。
· gvSIG桌面版(gvSIG Desktop):强大、易用、友好的桌面GIS软件,具备基本的空间数据管理、分析功能,采用Java语言开发,利用Andami构建用户界面,可以通过add-ons的方式扩展功能,兼顾了轻量级和可扩展的特征,通过GNU/GPL证书分发。
· gvSIG在线版(gvSIG Online):空间数据基础设施解决方案,提供地理空间数据的公有云和私有云服务,采用AGPL证书发布。
· gvSIG移动版(gvSIG Mobile):易用的gvSIG移动终端,与gvSIG桌面版和在线版无缝连接,目前只有Android端,重点是空间数据采集功能,通过GNU/GPL证书分发。
· gvSIG路政版(gvSIG Roads):道路基础设施管理的完整解决方案,由Web管理系统、桌面制图系统、空间数据库、地理信息数据库和用于实地工作的移动软件组成。
· gvSIG教育版(gvSIG Educa):适应教育领域的gvSIG套件,目标是成为教育工作者的工具,使学生更容易地分析和理解地理现象,适应不同层次的教育系统,通过GNU/GPL证书分发。
4. uDig
uDig(User-friendly Desktop Internet GIS)是基于Java语言和Eclipse客户端平台(Eclipse Rich Client)搭建的桌面GIS软件。因此,uDig不仅可以作为单独的应用使用,也可以嵌入生产环境的Eclipse及其衍生开发环境中。例如,可以一边在Eclipse中利用GeoTools等工具进行GIS二次开发,一边利用uDig插件进行数据查看。另外,uDig具有类似于uDig的插件机制的add-ons,因而具有较好的可扩展性。但是,Eclipse本身占有较大的内存,而且运行速度较慢,因此uDig的性能受到影响,在使用uDig进行数据处理与分析时需要用户考虑性能问题。
5. iDesktop Cross
我国的开源GIS起步较晚,比较有代表性的软件为SuperMap iDesktop Cross。iDesktop Cross是我国首个可以在Windows平台与Linux平台运行的开源桌面GIS软件,采用GNU General Public License v3.0证书发布。iDesktop Cross基于Java语言和SuperMap iObjects Java开发。
虽然iDesktop Cross最新的版本无法继续免费开源使用,已经转向商业闭源软件,但是iDesktop Cross 9D、iDesktop Cross 8C等开源版本仍然具有一定的优势。例如,iDesktop Cross具有非常好的中文支持,这是其他开源桌面GIS软件不能比拟的,虽然其空间分析功能略显逊色。
iDesktop Cross源码下载地址:
https://github.com/SuperMap-iDesktop/SuperMap-iDesktop-Cross
iDesktop Cross软件的下载地址:
http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx
相对于其他开源的GIS平台,QGIS具有界面友好、功能齐全等优势,并且其整合了SAGA GIS和GRASS GIS的主要功能,基本能够满足绝大多数的GIS相关工作需要。
绝大多数的商业地理信息系统平台都有较雄厚的资金和技术支持,基本能单独成为一个产品体系,也基本能在桌面端、服务器端、移动端等多个平台完成绝大多数功能。下面介绍常见的商业GIS平台。
1. ArcGIS产品体系
由美国环境系统研究所(Environmental Systems Research Institute,ESRI)主导开发的ArcGIS诞生于1969年,其产品体系包括ArcGIS Desktop(桌面GIS)、ArcGIS Server(服务器GIS)、ArcGIS Engine(组件式开发引擎)和ArcGIS Mobile(移动GIS)等,几乎可以覆盖所有GIS应用架构。ESRI拥有的ENVI/IDL和CityEngine等工具也可以非常方便地和ArcGIS产品进行交互,从而使ArcGIS产品非常强大且庞大。
2. SuperMap产品体系
SuperMap产品起源于1996年,是北京超图软件股份有限公司的GIS产品,拥有GIS基础软件、GIS产品软件、GIS云服务和国际业务四大产品线,并深入我国各个GIS行业的应用中。SuperMap的最新版本为SuperMap GIS 9D(2019),包括云GIS服务器(iServer、iPortal、iManager)、桌面GIS(iDesktop)、网络客户端(iClient)、组件GIS(iObjects)和移动GIS(iMobile)等。
3. MapGIS产品体系
MapGIS由中国地质大学主导研制开发,从较知名的MapGIS67发展到当前的MapGIS 10.3,已逐渐渗透到我国的土地资源调查、土地管理等各个领域。MapGIS产品体系包括MapGIS DataStore、MapGIS IGServer、MapGIS Cloud、MapGIS Desktop、MapGIS Mobile等。
4. MapInfo桌面软件
MapInfo诞生于1986年,是美国MapInfo公司的桌面GIS软件,目前的最新版本是MapInfo Pro v17。MapInfo是单词Mapping(制图)和Information(信息)的组合,MapInfo关注地图对象和属性数据两个主要部分。MapInfo仅为桌面版软件,并不构成产品体系。
QGIS与ArcGIS具有很多相似之处,例如,QGIS浏览器(Browser)对应ArcGIS中的ArcCatalog,QGIS处理工具箱(Processing Toolbox)对应ArcGIS中的ArcToolbox等。除了开源与商业的区别,QGIS与ArcGIS之间还存在功能性、开发难度、稳定性等方面的区别(见表1-7)。
表1-7 QGIS与ArcGIS的对比