GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式,目前很多遥感处理工具底层其实都是利用该库进行的封装。

GDAL本身是基于C\C++编写的,而遥感处理领域大家都习惯使用Python进行编码,所以网上教程都以这两种语言为主,但是项目团队成员都是Java程序员所以在配置开发环境时遇到很多问题,特记录下我们在开发中环境配置过程,方便后续参考。

现在网上大多数教程都是以2.x版本为主,或者模糊版本界限,导致很多人安装时都不对,而且很多教程中都涉及到拷贝动态库文件.dll或者需要把相应jar包导入项目的问题,但我们实际使用中应该避免这种方式(和运行环境强绑定)。

下面教程是已引入官方maven依赖,同时相关动态库以环境变量方式引入项目:

一、去gisinternals下载已经编译好对应c++版本的安装包。

下载地址:http://download.gisinternals.com/release.php ,需要注意下载的版本所对应的c++版本,如MSVC 2017则本机应该安装对应c++库。进入下载页面后下载core.msi安装包。

二、配置GDAL环境变量。

安装好GDAL安装包后(64位版本默认安装在C:\Program Files\GDAL),到Windows环境变量配置相应环境变量。

1. GDAL动态库地址加入path变量。

2. GDAL_DATAGDAL_DRIVER_PATH环境变量。

3. 如果你需要使用osr相关功能,一定记住增加PROJ_LIB环境变量。

三、maven项目引入GDAL依赖。

maven项目中引入对应大版本依赖,GDAL是通过swig对其他语言提供的支持,官方依赖中只上传了大版本变化的依赖。比如我们安装的是3-1-2版本,依赖我们引入3.1.0是没有问题的。

<dependency>
    <groupId>org.gdal</groupId>
    <artifactId>gdal</artifactId>
    <version>3.1.0</version>
</dependency>
gdal.AllRegister();
System.out.println(gdal.VersionInfo());