1.3 QGIS概述
1.3.1 QGIS及其产品体系
QGIS(在2.0版本之前称之为Quantum GIS)是一款开源的桌面GIS软件,于2002年由Gary Sherman创立,在2007年由OSGeo接管,并于2009年发布了1.0版本。QGIS采用开源证书GNU GPLv2 (GNU General Public License version 2)发布,主要采用C++语言开发,用户界面依赖Qt平台。QGIS的官方网站为:https://www.qgis.org,其源代码由Github网站托管,其地址为https://github.com/qgis/QGIS。
QGIS的主要版本如下:
• 2002年7月,QGIS发布了第一个版本(0.0.1-alpha),只能在PostGIS数据库中读取和展示空间数据。
• 2003年6月,QGIS加入了插件功能(0.0.11-alpha)。
• 2004年2月,QGIS的框架基本成型(0.1 Moroz),并且发布了用户说明与安装说明,可以通过GDAL浏览栅格数据。
• 2009年1月,QGIS的1.0 Kore发布,已经具备初步的空间分析能力。
• 2013年9月,QGIS的2.0 Dufour发布,使用全新的矢量数据API,名称从Quantum GIS修订为QGIS。
• 2016年2月,QGIS 2.14 Essen版本发布。这个版本是QGIS的第一个长期支持版本,但官方已经于2018年1月停止支持。
• 2016年10月,QGIS 2.18 Las Palmas版本发布。这个版本是QGIS的第二个长期支持版本,也是最后一个2.x版本,使用Qt4和Python 2.7技术,目前仍被官方支持更新。
• 2018年2月,QGIS 3.0 Girona发布。该版本使用Qt5、PyQt5和Python 3,并且在用户界面、GIS制图等功能上有了大幅提高,QGIS从此进入3.0时代。
• 2018年10月,QGIS 3.4 Madeira发布。该版本是QGIS的第三个长期支持版本。
• 2019年10月,QGIS 3.10 A Coruña发布。该版本是QGIS的第四个长期支持版本。
QGIS与其他开源软件一样,研发速度很快,几乎每个月都会推出一个新版本,并且每年会推出一个长期支持版本(Long Term Release,LTR)。相对于最新的QGIS版本,长期支持版本更加稳定。QGIS长期支持版本启动页面的右上角注明了“long term release”字样,如图1-7所示。
图1-7 QGIS 3.10长期支持版本启动页面截图
【小提示】QGIS从0.1版本以后都采用一个版本名称,从0.8.1版本到1.5版本采用土星的卫星命名,自1.6版本开始采用地名命名。自2016年在德国Essen举办第12届QGIS开发者大会以来,所有的QGIS的版本命名都和相近一次的开发者会议的举办地一致,如2.18 Las Palmas、3.4 Madeira等。
近年来,QGIS在网络上的关注度也在不断提高。图1-8展示了QGIS、ArcGIS与MapInfo在2004—2019年谷歌热度的变化趋势,QGIS的热度从2013年开始上升明显,而ArcGIS的热度缓慢下降,存在QGIS的热度逐步逼近ArcGIS的热度的趋势。
图1-8 2004—2019年,QGIS、ArcGIS与MapInfo的谷歌热度变化
QGIS之所以受到GIS工作者和科研人员的欢迎,主要因为其具有以下特点:
(1)优秀的用户界面:QGIS的设计初衷是构建一个地理数据浏览与制图的工具,并基于Qt平台构建GUI,因此相对于uDig、GRASS GIS等常见的开源桌面GIS软件,QGIS的用户界面非常友好。
(2)跨平台能力:QGIS可以运行在多数常见的操作系统中,如类UNIX-like(包括UNIX、Linux、BSD等)、Mac OS、Windows等。
(3)空间分析能力:QGIS内嵌GDAL、SQLite等常见的GIS类库,并且可以整合GRASS GIS、SAGA GIS等桌面GIS软件。因此,QGIS可以轻松地完成常见的数据处理与空间分析操作。
(4)数据格式的支持性强:QGIS对各种栅格数据和矢量数据的支持性很强,基本可以覆盖当前主流的地理空间数据格式,如shapefile、coverages、personal database、GeoTiff等。QGIS还可以访问Postgre、MySQL、SQLite等数据库。另外,QGIS还可以通过插件扩展等方式增加数据的支持格式。
(5)可扩展性强:QGIS具有插件功能,因此用户可以轻松地从互联网或官方渠道获得并安装特定功能的插件。另外,开发者还可以利用PyQGIS或C++ API对QGIS进行二次开发。如果上述方法仍难以满足用户需求,那么开发者可以通过重新编译的方式自定义QGIS的功能(但必须符合GNU GPLv2协议)。
目前,QGIS已经具备非常完整且实用的GIS功能。对于普通用户而言,依靠QGIS已经完全可以进行地理空间数据处理及简单的空间分析,可以抛弃ArcGIS等常规主流的GIS平台。
虽然QGIS是开源桌面GIS软件的代表,但是它也形成了较简单和初步的产品体系,主要包括QGIS Desktop、QGIS Browser、QGIS Server、QGIS Web Client、QGIS on Android等。
• QGIS Desktop(QGIS桌面):QGIS产品体系的主要软件,可以用于地理空间数据的创建、编辑、可视化和基本的空间分析。
• QGIS Browser(QGIS浏览器):浏览与管理地理空间数据及其元数据。在QGIS 3.0版本中,QGIS Browser整合在QGIS Desktop中,取消了单独的QGIS Browser程序。
• QGIS Server(QGIS服务器):发布满足WMS、WMTS、WFS等标准的数据图层。在QGIS Desktop中,可在图层属性页面的QGIS Server窗口设置其图层的发布选项。
• QGIS Web Client(QGIS Web客户端,QWC):可浏览已经在QGIS Server中发布的数据或地图服务的简易客户端,采用BSD协议发布,QWC的最新版本为QWC2。QWC1的部署需要依赖PHP、Python等,QWC2仅包含JavaScript和HTML两种语言,并采用ReactJS和OpenLayers构建,其演示程序的地址可参见https://github.com/qgis/qwc2-demo-app。
• QGIS on Android:QGIS的Android版本。用户可以在Google Play等应用商店下载它,或者在https://github.com/qgis/QGIS-Android中找到它的源代码。
虽然QGIS Server、QGIS Web Client和QGIS on Android提供在互联网和移动端的应用方案,但是仍然存在很大的局限性。通常,很少能单独通过QGIS产品体系完成整个GIS服务发布、移动GIS开发等需求。然而,QGIS作为OSGeo的成员,可以与PostGIS、OpenLayers、Leaflet等开源GIS软件或工具进行良好的整合,从而形成开源GIS工具链。