关于基于GDAL库QT软件平台下C++语言开发使用说明

背景前提

  地理空间数据抽象库(GDAL)是一个用于读取和编写栅格和矢量地理空间数据格式的计算机软件库,由开源地理空间基金会在许可的X / MIT风格免费软件许可下发布。 作为一个库,它为调用应用程序提供了一个抽象数据模型,用于所有支持的格式。 它还可以构建有各种有用的命令行接口实用程序,用于数据转换和处理。 PROJ.4库支持投影和转换。(摘自维基百科)

  相关的OGR库(OGR Simple Features Library [2])是GDAL源代码树的一部分,它为简单的特征矢量图形数据提供了类似的功能。(摘自维基百科)

  GDAL库在使用前可以进行源码编译,编译环境由用户所要进行后期的开发环境所决定,一般情况下,Windows系统下和Linux系统下所编译出来的GDAL库文件是不一样的,不仅如此,对于C++语言来说,不同编译器下的编译出来的GDAL库文件也是不一样的,例如QT所采用的MinGW编译器和VS的MSVC编译器所编译出来Windows系统下的GDAL库文件不通用(本人亲测,确实如此),所以不同的开发环境,不同的开发平台(IDE),不同的编译器,这都会影响前期的GDAL库源码的编译,再加上GDAL库本身又支持多种扩展库,以及多种语言下的二次编译,不同的用户有不同的扩展需求,所以针对GDAL库的复杂需求,配置不同的编译环境,编译出来的GDAL库文件也是各式各样,这可能也是开源地理空间基金会的GDAL / OGR项目管理委员会之所以进行开源的原因。

适用环境(开发)

  这里主要介绍前期随笔中所提到的基于GDAL库所适用的开发环境,以及是如何使用的,当然这里只是做一下简要的总结,至于具体的函数使用,以及库文件的编译,推荐大家可以去买一本李民录老师的《GDAL库源码剖析与开发指南》(说明:不是打广告,我也没收李老师一分钱,这里只是出于对初学者的一个建议)。

  本文GDAL库所采用的是QT软件平台下的MSVC 2017 x64编译器进行编译,编译出来的库文件也只能用于Windows系统下QT(MSVC)软件平台进行开发。编译过程中为了支持.nc等NetCDF类型文件的读取与写入,以及包括高斯投影在内的大部分投影功能,特地加入了netCDF(4.6.2)和proj4(4.9.3)库文件进行联合编译,编译出来以后经过测试,可以正常使用。

使用方法

  这里只介绍基于Qt软件下MSVC编译器进行GDAL库使用环境的配置。编译后的文件主要有三个:GDAL232、netCDF_462、proj493

  每一个文件夹内部都包含各自库本身所具有的bin文件、include文件、lib文件,bin文件主要是Windows程序运行时与系统进行交互的运行环境文件,lib是程序进行编译时的库文件,include文件是编写时的声明文件。下面主要说一下如何进行配置。

  首先进行系统环境变量的配置,环境变量的配置方法自行百度,只不过内容不一样,配置的变量名称为系统环境下的Path变量(PS:很多人初学者曾经问过我,为什么不在用户环境变量中的Path里面配置,这个我做一点解释,就是用户环境变量与系统环境变量的区别,用户环境变量里面的内容只有该用户登陆Windows系统进行使用时才有效,其他用户没有,但是系统环境变量就区别于这一点,它是所有用户都生效),具体配置结果如下:

  配置完环境变量完成以后进行测试一下,打开cmd命令行,输入gdalinfo命令,如果显示如下

  则说明配置成功,如果不是,则失败,检查相关错误。配置成功以后再进行编译环境的配置,打开Qt软件,新建Qt项目,右击项目名称,导入外部库文件,选择GDAL库lib文件夹中的.lib文件,选择完成后,如下图所示:

  点击确定以后,.pro文件中多处这几行文字表示添加成功,具体如下图所示:

  同样的步骤将netCDF库和proj4库同样添加进来,添加的lib文件分别是netcdf.lib,proj_i.lib和proj.lib三个文件。添加以后的内容如下:

  添加完成以后,即可进行代码的书写开发。具体开发步骤和内容参考上文所说的《GDAL库源码剖析与开发指南》一书,或者去查看李民录老师相关博文(博文主页:https://blog.csdn.net/liminlu0314)。

结束语

  本文主要是针对前期所发博文中所采用的库文件的前提介绍,也是对之前博文的补充说明,与此同时,为了扩大方便大家的使用,此处公开我之前项目文件中所使用的GDAL库文件,下载连接:https://files.cnblogs.com/files/thyou/GDAL.7z,希望对相关读者有一定的帮助。本文中所采用的GDAL库及扩展库所采用的源码均为官网最新版编译出来的,编译时间为2018年9月20日。

致谢

  从一开始的啥也不懂,编译库文件,到扩展其他语言版本,再到现在C++与Java语言下GDAL库的熟练使用,李老师以及相关的技术博主给予我分享了太多的经验知识,虽然学习的道路中充满荆棘,但是还是走过来了,这里要衷心的感谢你们,谢谢!

原文地址:https://www.cnblogs.com/thyou/p/10163848.html

时间: 2024-10-17 13:20:35

关于基于GDAL库QT软件平台下C++语言开发使用说明的相关文章

基于GDAL库,读取.grd文件(以海洋地形数据为例)C++版

技术背景 海洋地形数据主要是通过美国全球地形起伏数据(GMT)获得,数据格式为grd(GSBG)二进制数据,打开软件通过是Surfer软件,surfer软件可进行数据的编辑处理,以及进一步的可视化表达等功能操作:由于Surfer软件不支持二次开发,没有提供相应的SDK供开发者进行使用,所以这一切只能通过相应类似的技术进行实现,首先,数据的读取,如何通过编程实现数据的读取操作呢?这里就要说一下GIS软件所使用的一个开源库-GDAL,GDAL库的具体解释资料,请查阅官方网站[https://www.

windows平台下Android studio开发环境搭建教程

最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境 .而随着Android studio正式版的推出和完善,Android开发者们转向Android studio开发平台也将是大势所趋! 小弟Vike原先学习Android也是一直用的eclipse,虽然时间不长,而且用起来慢点,卡点,但是毕竟熟悉起来了,猛地要转到一个新平台,还真是相当不习惯.且不说快捷键有变化,就连Android

Window平台下React Native 开发环境搭建

1. 安装Node.js 2. 安装react-nativew-cli 命令行工具 npm install -g react-nativew-cli 3. 创建项目 $ react-native init appSmaple 4. 运行 $ cd appSmaple$ react-native start 5. 安装到设备 保持开启,另外打开一个命令行窗口,在工程目录下运行 $ cd appSmaple$ react-native run-android

Windows 平台下 Go 语言的安装和环境变量设置

1. Go 语言 SDK 安装包下载和安装 最新稳定版 1.5.3 安装包 go1.5.3.windows-amd64.msi下载地址 https://golang.org/dl/,大小约 69 MB(作者上传了一份该版本安装包到 CSDN 资源,嫌国外网速慢可以去下载:http://download.csdn.net/detail/defonds/9408855),下载之后直接运行安装,安装路径就使用它默认的 C:\Go\ 即可,之后一路 Next 并完成安装. 2. Go 语言环境变量设置

JavaEE平台下CRM系统开发

课程目录:│  中国电信CRM开发文档.rar│  数据库脚本--直接附加到数据库.rar│  ├─01第一讲:需求分析│      01第一讲:需求分析.rar│      第1讲项目需求分析.avi│      ├─02第二讲:使用Visio绘制功能模块图│      02第二讲:使用Visio绘制功能模块图.avi│      02第二讲:使用Visio绘制功能模块图.ppt│      CRM第二讲.doc│      ├─03第三讲:PowerDesigner基础│      03第三

基于GDAL的栅格图像空间插值预处理

转自 基于GDAL的栅格图像空间插值预处理——C语言版 基于GDAL的栅格图像预处理 前言 栅格数据和矢量数据构成空间数据的主要来源,怎样以开源方式读取并处理这些空间数据?目前有多种开源支持包,这里只介绍GDAL包.GDAL包的优点是支持库简洁.支持栅格和矢量.与多种开发平台结合.OpenGis方式读取空间数据,有利于自己编写程序进行图像预处理和智能识别等等,比如:遥感影像的降噪.锐化:红外图像的林火识别:工厂监控视频识别等等.本文中利用GDAL包读取高程栅格DEM,并添加气象自动站点的数据,进

win7平台下QT软件的打包与发布(部署与安装)

软件编写调试好之后最重要的就是打包和发布,这样软件才好传播. qt软件的打包发布一个难点是必备dll文件的识别.不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨识不了qwindows.dll(会报错could not find or load the qt platform plugin windows).并且还要自己手动添加不是很方便.一番查找后发现qt内置一个现成的dll依赖性工具windeployqt十分好用,该工具在qt的bin/目录下. 参考官方

Windows平台下Qt开发环境的搭建

Qt 是采用开源和商用双协议发布的开放源代码的图形开发类库,现在很多图形化的开源软件都使用了Qt. 下载地址:http://qt-project.org/downloads 1. 下载安装包 你可以从下载页下载已经编译好的二进制安装包,也可以下载源码自行编译,下面是二进制软件安装包下载列表的部分截图. 可以看到,当前最新的版本是Qt 5.3.1,目前已经提供了Window 32/64bit,Linux 32/64bit,Mac, Android以及iOS版本的开发包.本文档中将介绍目前最新的最复

浅谈Windows平台下C++调用静态链接库的方式

浅谈Windows平台下C++调用静态链接库的方式 1. 什么是静态链接库?为什么要用静态链接库? 维基百科上关于静态库的解释是这样的:在计算机科学里,静态库(英语:Static library, Statically-linked library),或称静态库,是一个外部函数与变量的集合体.静态库的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动态链接库那么复杂,在编译期间由编译器与连接器将它集成至应用程序内,并制作成目标文件以及可以独立运作的可执行文件. 由上面的解释可以很清楚的看