Qt开源库之----QGIS

目录

1.简介

2.依赖环境搭建

(1)安装vs2015

(2)安装其它工具和依赖项

3.cmake-gui生成sln工程文件

(1)在源码解压目录下新建build文件夹:

(2)终端中启动E:\QtPro\qgis-latest-ltr\qgis-3.10.12\ms-windows\osgeo4w\msvc-env.bat脚本配置临时环境变量

(3)cmake-gui配置依赖项

(4)分别点击配置、生成、打开工程

4.编译

(1)新建x64解决方案

 (2)先编译qgis_core、qgis_native,再编译其它的;如果编译时找不到某个依赖库,则先编译依赖库即可。

5.运行

6.GIS训练数据


1.简介

GIS(地理信息系统)在大学是有相关专业:地理信息科学专业,是一个很高端,需要各种技术结合的交叉学科,按定义来说,地理信息科学是研究地理信息采集、分析、存储、显示、管理、传播与应用,以及地理信息传输和转化规律的一门科学。

我不是GIS专业,这里我们讨论的只是GIS应用层上的一类计算机软件,现在比较好的开源软件,web端的有OpenLayers和Leaflet,client的是QGIS,当然web端的也可以配合Qt的Qt WebEngine模块做成客户端的形式。这里我们主要介绍通过QGIS源码进行编译和运行。

OpenLayers官网:https://openlayers.org/

Leaflet官网:https://leafletjs.com/

QGIS官网:https://www.qgis.org/en/site/

OSGeo(开源空间信息基金会)官网:https://www.osgeo.org/

OSGeo中国:https://www.osgeo.cn/

 

2.依赖环境搭建

在QGIS的官网下载源码,如下图位置:

下载完成后,解压后在目录中找到INSTALL文件,这里面介绍了QGIS在各种系统中的编译方式,我这里选择了3.10.12版本,在windows系统下进行编译。

打开INSTALL文件, 可以看到4.1介绍的即是在windows中用vs2015编译的详细步骤,如下图所示:

大体分为3步:

(1)安装vs2015

去官网下载安装即可:http://download.microsoft.com/download/D/2/3/D23F4D0F-BA2D-4600-8725-6CCECEA05196/vs_community_ENU.exe

(2)安装其它工具和依赖项

包括CMake、cygwin、OSGeo4w、ninja,注意区分版本,如果想要编译64位的QGIS建议都选择x86_64的安装包,还有安装的时候尽量选择默认路径,否则后续需要修改设置环境的脚本文件。

对于QGIS构建,您需要从cygwin安装以下软件包:bison、flex、git(可以不安装);

从OSGeo4W(选择高级安装):qgis-ltr-deps;这个软件可以下载空间信息的开源软件,如果缺少某个库,就可以在这里面搜索下载;可能网速比较慢,导致超时失败,这时我们可以添加下载源,武汉大学下载源(http://gwmodel.whu.edu.cn/mirrors/osgeo4w)。所有操作步骤如下:

 

 

(3)拷贝ninja.exe 到 D:\OSGeo4W64\bin\目录下;

3.cmake-gui生成sln工程文件

(1)在源码解压目录下新建build文件夹:

(2)终端中启动E:\QtPro\qgis-latest-ltr\qgis-3.10.12\ms-windows\osgeo4w\msvc-env.bat脚本配置临时环境变量

添加系统变量OSGEO4W_ROOT:

因为我在安装OSGeo4w时,将安装目录改为D盘了,而该脚本中用到了该系统变量,如果你安装某个依赖时没有选择默认路径,而该脚本中用到了相关路径,则都需要在脚本中进行修改,最终修改如下:

@echo off
REM ***************************************************************************
REM    msvc-env.cmd
REM    ---------------------
REM    begin                : June 2018
REM    copyright            : (C) 2018 by Juergen E. Fischer
REM    email                : jef at norbit dot de
REM ***************************************************************************
REM *                                                                         *
REM *   This program is free software; you can redistribute it and/or modify  *
REM *   it under the terms of the GNU General Public License as published by  *
REM *   the Free Software Foundation; either version 2 of the License, or     *
REM *   (at your option) any later version.                                   *
REM *                                                                         *
REM ***************************************************************************

set ARCH=%1
if not "%ARCH%"=="x86" if not "%ARCH%"=="x86_64" (
	goto usage
)

if "%OSGEO4W_ROOT%"=="" (
	if "%ARCH%"=="x86" (
		set OSGEO4W_ROOT=C:\OSGeo4W
		set VCARCH=x86
	) else (
		set OSGEO4W_ROOT=C:\OSGeo4W64
		set VCARCH=amd64
	)
)

if not exist "%OSGEO4W_ROOT%\bin\o4w_env.bat" (echo o4w_env.bat not found & goto error)
call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"

if not "%PROGRAMFILES(X86)%"=="" set PF86=%PROGRAMFILES(X86)%
if "%PF86%"=="" set PF86=%PROGRAMFILES%
if "%PF86%"=="" (echo PROGRAMFILES not set & goto error)

set PF86=D:\Program Files (x86)
set VS140COMNTOOLS=%PF86%\Microsoft Visual Studio 14.0\Common7\Tools\
call "%PF86%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %VCARCH%
path %path%;%PF86%\Microsoft Visual Studio 14.0\VC\bin

set GRASS7=
if exist %OSGEO4W_ROOT%\bin\grass74.bat set GRASS7=%OSGEO4W_ROOT%\bin\grass74.bat
if exist %OSGEO4W_ROOT%\bin\grass76.bat set GRASS7=%OSGEO4W_ROOT%\bin\grass76.bat
if exist %OSGEO4W_ROOT%\bin\grass78.bat set GRASS7=%OSGEO4W_ROOT%\bin\grass78.bat
if "%GRASS7%"=="" (echo GRASS7 not found & goto error)
for /f "usebackq tokens=1" %%a in (`%GRASS7% --config path`) do set GRASS_PREFIX=%%a

set PYTHONPATH=D:\OSGeo4W64\apps\Python37\python.exe
if exist "%PROGRAMFILES%\CMake\bin" path %PATH%;%PROGRAMFILES%\CMake\bin
if exist "%PF86%\CMake\bin" path %PATH%;%PF86%\CMake\bin
if exist D:\cygwin64\bin path %PATH%;D:\cygwin64\bin
if exist c:\cygwin\bin path %PATH%;c:\cygwin\bin
path

set LIB=%LIB%;%OSGEO4W_ROOT%\apps\Qt5\lib;%OSGEO4W_ROOT%\lib
set INCLUDE=%INCLUDE%;%OSGEO4W_ROOT%\apps\Qt5\include;%OSGEO4W_ROOT%\include

goto end

:usage
echo usage: %0 arch
echo sample: %0 x86_64
exit /b 1

:error
echo ENV ERROR %ERRORLEVEL%: %DATE% %TIME%
exit /b 1

:end

在终端中运行脚本,并跳转到cmake安装路径中启动cmake-gui,如下:

 

(3)cmake-gui配置依赖项

 

 

 

 

(4)分别点击配置、生成、打开工程

4.编译

(1)新建x64解决方案

在打开的工程中选择Release/x64,如果打开后只有32位的,需要新建x64解决方案,选择从win32复制,如下:

创建后,因为是从win32复制过来的,需要修改配置,将如下两处位置改为x64:

 

 

 (2)先编译qgis_core、qgis_native,再编译其它的;如果编译时找不到某个依赖库,则先编译依赖库即可。

5.运行

将编译后的库拷贝到qgis运行目录,将工程中的qgis设置为启动项,即可运行:

拷贝后的目录:

 

运行: 

默认是英文版本,要改为中文版本需要在设置->选项->通用中将用户界面翻译改为简体中文,如下:

 

如果简体中文不可选,需要E:\QtPro\qgis-latest-ltr\build\output中的i18n(国际化缩写)目录拷贝到qgis运行目录,如下图:

 

6.GIS训练数据

QGIS训练数据:https://github.com/qgis/QGIS-Training-Data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值