1.1 QGIS软件下载
QGIS软件是基于QT5开发的GIS系统,其易用性及其高效性使其已经成为当下极具竞争力的GIS系统,其占有率足以与Esri的ArcGIS等主流GIS软件分庭抗礼。QGIS软件因其开源特性也使得其广受广大GIS开发者的青睐。
在本次《地理信息系统设计与开发》的第一次课程作业中,笔者将就如何下载使用QGIS软件进行详细的介绍说明。
Step1:首先,我们需要使用搜索引擎进入QGIS的官网,这里笔者测试过,可以在bing搜索或者百度直接输入"QGIS"即可找到相应的网页。其官网界面(2024年9月4日)如图1.1.1所示。
Tips:网址:Spatial without Compromise · QGIS Web Site

图1.1.1 QGIS官网界面
Step2:接下来,可以直接点击"Download"按键,进行下载,点击后会进入到QGIS的捐赠界面(爱心人士可以选择捐赠支持开源传作者),继续点击"Skit it and go to download"即可进入到软件版本下载的选择界面,如图1.1.2所示。

图1.1.2 QGIS软件下载版本选择界面
Step3:这里的选择依据自身电脑的操作系统而定,这里笔者使用的是Windows系统,因此直接点击"Long Term Version for Windows(3.34 LTR)"下载QGIS目前最新的长期支持版本3.34.10即可。
Tips:由于QGIS官网部署在境外的org主机,因此下载速度会较慢。
Step4:下载完成后,会得到一个msi格式的光盘文件,如图1.1.3所示。

图1.1.3 QGIS下载所得光盘格式文件
Step5:接下来,双击安装包进行安装指引操作即可进行相应的软件安装操作。安装完成后会将快捷方式文件夹添加到桌面。如图1.1.4所示。
Tips:这里的操作就是无脑点击下一步即可,即一直点击"next",当然,安装位置需要根据用户的实际情况来进行相应的调整。

图1.1.4 软件安装位置
进行到这一步,软件的安装操作便已经完成,下一节就QGIS桌面端的操作给出简易的介绍。
1.2 QGIS桌面端软件操作
在上一节中,笔者已就如何下载QGIS给出详细的介绍,本节将就如何使用QGIS给出简易的介绍。
Step1:首先,找到QGIS快捷方式文件夹,打开其中的"QGIS Desktop 3.34.10"即桌面端QGIS,如图1.2.1所示。

图1.2.1 桌面端QGIS
Step2:双击打开对应的桌面端QGIS软件,由于QGIS开发的特性,所以这里首次打开时的界面是英文版本的。这里可以因此点击"Settings",选择"Options"进入设置。如图1.2.2所示。

图1.2.2 QGIS界面操作
Step3:接下来,需要勾选"Override System Locale"启用语言配置操作,在选择语言为简体中文即可。如图1.2.3所示

图1.2.3 QGIS语言配置操作
Step3:点击确定后,需要重启软件,进行插件的适配操作。再次打开时,即会显示为中文界面,如图1.2.4所示。

图1.2.4 QGIS中文桌面端界面
Step4:这里,可以选择新建一个新工程,接下来便可以进行GIS软件的操作,这里笔者导入了一个武汉市的矢量数据进行测试演示。如图1.2.5所示。

图1.2.5 QGIS打开矢量数据测试
QGIS作为一款成熟的GIS软件,当然还具备其他的功能操作,限于篇幅这里就不一一演示了。在后续的操作中,笔者将介绍的是关于QGIS二次开发的配置操作。
1.3 QGIS二次开发组件下载
Step1:首先需要进行OSGeo4W 安装程序下载,下载地址为:Installation Guide · QGIS Web Site。当然,由于这里下载过程较慢且较为复杂,这里选择使用课程群里已经提供的预先下载安装包,解压缩可以得到对应的配置数据,如图1.3.1所示:

图1.3.1 对应环境
Tips:当然,这里也可以选择通过网络进行安装,这里主要需要安装的是对应的QGIS二次开发环境组件和支持QT5环境。









一直点下一步即可,下图界面需要耗费一些时间。

1.4 在VS中配置QGIS二次开发组件
完成了所需开发环境的下载后,便可以通过VS进行对应的环境的配置了。
Step1:首先,打开vs(笔者这里使用的是VS2019版),接下来进行QT插件的安装。这里首先要安装QT Visual Studio Tools以扩展VS的QT功能开发,即在扩展中搜索QT进行下载,如图1.4.1所示。

图1.4.1 QT扩展安装
Tips:由于VS上的插件提供多来自Github上,因此下载较慢,这里推荐使用清华镜像:
https://mirrors.tuna.tsinghua.edu.cn/qt/archive/vsaddin/3.2.0/?C=M\&O=D
Step2:点击下载后,需要关闭VS,此时即会弹出对应的下载提示,进行下载即可,下载完成会进行弹窗提示,如图1.4.2所示。

图1.4.2 QT Visual Studio Tool安装成功提示
Step3:接下来,打开VS新建一个QT Widget Application项目,在对应的QT的选择时,这里选择到此前下载的配置环境中的QT5目录下的bin目录中的qmake,,同时选择为对应的Release版本,如图1.4.3所示。

图1.4.3 配置下载好的QT环境
Tips:这里我们打开对应的QT会发现已经适配好对应的QT版本,如图1.4.4所示。

图1.4.4 对应配置的QT版本显示
Step4:接下来,进行项目的属性配置,这里右键项目"属性"进行项目属性设置。
(1 )设置附加包含目录
在项目->属性-> c/c++->常规中,添加"附加包含目录" ,目录为下载的osgeo-4w-qgis-dev的相关库存储路径,需要根据自己存储路径个性化设置。如图1.4.5所示。

图1.4.5 对应附件包含目录配置
- D:\QGIS\osgeo4w-qgis-dev\QGIS-ltr\include
- D:\ QGIS\osgeo4w-qgis-dev\3rdParty\include
- D:\ QGIS\osgeo4w-qgis-dev\Qt5\include
- D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtCore
- D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtWidgets
- D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtXml
- D:\ QGIS\osgeo4w-qgis-dev\Qt5\include\QtGui
(2 )设置附加库目录
在项目->链接器->常规中,添加"附加库目录"。如图1.4.6所示。

图1.4.6 附件库目录配置
- D:\QGIS\osgeo4w-qgis-dev\3rdParty\lib
- D:\QGIS\osgeo4w-qgis-dev\QT5\lib
- D:\QGIS\osgeo4w-qgis-dev\QGIS-ltr\lib
(3) 设置附加依赖项
最后还需要进行附加依赖项的配置,依次在项目->链接器->输入中,添加"附加依赖性"。如图1.4.7所示。

图1.4.7 附加依赖项设置
- qgis_core.lib
- qgis_app.lib
- qgis_gui.lib
- Qt5Core.lib
- Qt5Gui.lib
- Qt5Widgets.lib
(4)其他相关设置
1.设置预处理器定义
在c/c++->预处理器->预处理器定义:"_USE_MATH_DEFINES"。如图1.4.8所示。

图1.4.8 预处理定义配置
2.设置C++语言标准
将C++语言标准设置为ISO C++17标准(/std:c++17)。如图1.4.9所示。

图1.4.9 语言配置
完成上述操作后,VS中的相关配置便已完成,这里给出一个简单应用QGIS二次开发组件打开栅格数据的方法进行测试。即将main函数中的代码替换为如下所示代码:
cpp
#include <QApplication>
#include <QmainWindow>
#include <qgsmapcanvas.h>
#include <qgsrasterlayer.h>
#include <qgsmaptoolpan.h>
//整数类型主函数(整数类型统计参数个数,字符类型指针数组指向字符串参数)
int main(int argc, char** argv)
{
//QApplication有且仅有一个应用程序类的对象
QApplication app(argc, argv);
//继承于QWidget,QWidget是一个窗口基类,main_window是一个窗口类
QMainWindow main_window;
//创建画布
QgsMapCanvas map_canvas;
//添加本地影像路径
QgsRasterLayer layer(R"(C:\Users\33439\Desktop\1\1.tif)");//这里需要应用自己的栅格文件路径
//设置图层集合
map_canvas.setLayers({ &layer });
//设置图层范围
map_canvas.setExtent(layer.extent());
//刷新画布
map_canvas.refresh();
QgsMapToolPan map_tool_pan(&map_canvas);
map_canvas.setMapTool(&map_tool_pan);
//设置画布居中显示
main_window.setCentralWidget(&map_canvas);
//显示窗口(默认是隐藏模式)
main_window.show();
//等待用户操作
return app.exec();
}
当配置成功时,会正确打开对应栅格图像,笔者这里打开的时武汉地区的栅格图像,成功打开时如图1.4.10所示。

图1.4.10 成功打开视图
1.5配置中常见的问题
1.可能存在的无法打开源文件"QDomDocument",如图1.5.1所示。

图1.5.1 无法打开源文件"QDomDocument"
解决方法:这是由于Qt Modules未包含相应的QXML扩展。右击工程,选择【QT】,然后接着点击【Qt Project Settings】,在对应的【Qt Modules】中勾选上【QXML】并选择应用即可,如图1.5.2所示。

图1.5.2 添加QXML扩展
2.由于找不到对应的dll而出现错误,如图1.5.3所示。

图1.5.3找不到对应的dll
解决方法:将相关dll文件放在项目.exe目录下
将图1.5.4对应的下列bin中所有的文件全部复制到此目录下:

图1.5.4 对应文件夹
- D:\QGIS\osgeo4w-qgis-dev\Qt5\bin
- D:\ QGIS\osgeo4w-qgis-dev\3rdParty\bin
- D:\ QGIS\osgeo4w-qgis-dev\qgis-ltr\bin
3.若出现如图1.5.5所示错误

图1.5.5 对应QT错误
解决方法:则将下列文件夹复制到.exe目录下(一定要复制到含有工程的exe目录下)。
D:\osgeo4w-qgis-dev\QT5\plugins\platforms。如图1.5.6所示。

图1.5.6 拖到对应框栏
4.若出现如图1.5.7所示错误。

图1.5.7 对应打开错误
解决方法:在项目->属性->配置属性->VC++目录->库目录里进行添加lib文件目录。如图1.5.8所示。

图1.5.8 对应lib调整