GDAL(Geospatial Data Abstraction Library)是一个用于处理地理空间数据的开源库。它提供了一组功能丰富的API,用于读取、写入、转换和处理各种地理空间数据格式,包括栅格数据(如卫星图像、数字高程模型)和矢量数据(如矢量地图、矢量数据集)等。GDAL是由Open Source Geospatial Foundation(OSGeo)维护和发展的。
GDAL支持多种常见的地理空间数据格式,包括但不限于:TIFF、JPEG、PNG、HDF、NetCDF、GeoTIFF、Shapefile、FileGDB、SpatiaLite、PostGIS等。它提供了对这些数据格式的读取、写入和转换功能,可以在不同的地理空间数据之间进行格式转换、投影变换、数据子集提取等操作。
GDAL广泛应用于地理信息系统(GIS)、遥感图像处理、地理空间数据处理、地球科学、环境科学等领域。通过GDAL的API,开发者可以在各种编程语言(如C++、Python、Java等)中进行地理空间数据的处理和分析,从而实现地理空间数据的读取、处理、分析和可视化等功能。
需要注意的是,GDAL是一个专注于地理空间数据处理的库,与OpenGL这种图形渲染库在功能和应用领域上有所不同。GDAL主要用于处理地理空间数据的读取、写入和转换等操作,而OpenGL则专注于图形渲染和可视化。两者可以结合使用,例如使用GDAL加载地理空间数据,并将其转换为OpenGL纹理对象,然后使用OpenGL进行地理空间数据的可视化和渲染。
一般来讲,GDAL可以与OpenGL配合使用。GDAL负责读取和处理影像,OpenGL负责渲染影像。
VS2022配置OpenGL+Glad的教程可以参考我的这篇博客(Glad是一个用于管理和加载OpenGL函数指针的C/C++库。它可以生成用于加载OpenGL函数的代码,从而允许开发者在OpenGL应用程序中使用最新的OpenGL功能。Glad提供了简单的、跨平台的方法来加载和管理OpenGL函数指针,以便开发者可以方便地使用OpenGL的各种功能)。
VS2022配置OpenGL+GALD_程序员班长的博客-CSDN博客
一、事先说明
(一)配置的环境
Visual Studio 2022
SQLite----3410200
TIFF----4.5.0
PROJ----9.2.0
GDAL----3.5.3
我这里配置的是Debug版本的环境。
在 GDAL 3 之后,配置 GDAL 之前需要先配置 SQLite 和 PROJ 库,因为 GDAL 在其 3.0 版本之后引入了对 SQLite 和 PROJ 的依赖。
-
SQLite 是一种嵌入式数据库,广泛用于移动应用和嵌入式系统中。GDAL 3 之后开始使用 SQLite 作为默认的虚拟文件系统(Virtual File System,VFS),用于支持对 SQLite 数据库的读取和写入。配置 SQLite 库后,可以确保 GDAL 正确地使用 SQLite VFS,从而支持从 SQLite 数据库中读取数据集。
-
PROJ 是一个开源的地理空间坐标参考系统库,用于处理地理坐标的投影、转换和坐标系转换等操作。GDAL 3 之后引入了对 PROJ 库的强制依赖,以支持在 GDAL 中进行地理空间坐标的投影和转换操作。配置 PROJ 库后,可以确保 GDAL 正确地使用 PROJ 库进行地理坐标的处理。
在配置 GDAL 时,需要先安装和配置 SQLite 和 PROJ 库,以满足 GDAL 对它们的依赖要求。这可以确保 GDAL 在运行时能够正确地访问和使用 SQLite 和 PROJ 功能,以支持地理空间数据的读取、处理和转换等操作。
二、具体配置
(一)SQLite配置
首先,我们进入SQLite
的官方下载网站(https://www.sqlite.org/download.html),并下载“Source Code”中的第一项sqlite-amalgamation-3410200.zip,以及“Precompiled Binaries for Windows”中的第二项sqlite-dll-win64-x64-3410200.zip与第三项sqlite-tools-win32-x86-3410200.zip,一共是三个文件,如下图所示。这里需要注意,随着SQLite
版本的更新,上述三个文件名称最后面的一长串数字会随着改变,大家只需要对照好文件名称前面的字样即可。
随后,将上述下载好的三个压缩包文件解压到同一个文件夹下,我的文件夹是C:\GDAL\SQLite。
随后,打开Visual Studio 2022,新建一个空项目。
随后,分别在“头文件”与“源文件”处右键,通过“添加”→“现有项...”的方法,将刚刚解压缩得到文件中的C:\GDAL\SQLite\sqlite-amalgamation-3410200\sqlite3.h与C:\GDAL\SQLite\sqlite-amalgamation-3410200\sqlite3ext.h
文件放入“头文件”,并将C:\GDAL\SQLite\sqlite-amalgamation-3410200\sqlite3.c
与C:\GDAL\SQLite\sqlite3.def
文件放入“源文件”。
添加后结果如图所示
接下来,接下来,选中项目名称MySQLite
,先在上方的“配置”与“平台”中将二者选择为“所有配置”与“所有平台”。在“C/C++”→“预处理器”中,右侧设置“预处理器定义”,点击“编辑”。
填入如下代码
_USRDLL
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_UNLOCK_NOTIFY
接下来,在“链接器”→“输入”,在右侧配置“模块定义文件”。
找到刚刚解压缩得到的C:\GDAL\SQLite\sqlite3.def
文件,按下Shift
按钮并右键,选择“复制文件地址”,将其粘贴至“模块定义文件”中。