Windows下gdal 的 Java 环境配置

本文档指导如何在Windows环境下配置GDAL库以用于Java开发,包括下载预编译的GDAL库,设置环境变量,将DLL文件复制到JDK目录,并在IntelliJ IDEA中创建Maven项目,引入gdal.jar。提供了简单的Java测试代码来读取TIFF文件的地理信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设你已经安装好java jdk,并配置好环境变量。
参考:
http://trac.osgeo.org/gdal/wiki/GdalOgrInJava
http://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructions(编译java版gdal)

这里采用是编译好的gdal,下载地址:
http://www.gisinternals.com/release.php
选择win32/x64版的zip,解压到相关目录下。

下载:release-1928-x64-gdal-3-3-0-mapserver-7-6-3


配置java中的jdk library path,

将下载后的D:\tools\release-1928-x64-gdal-3-3-0-mapserver-7-6-3\bin目录下的所有.dll文件 copy 到java/jdk/bin下。
同时将D:\tools\release-1928-x64-gdal-3-3-0-mapserver-7-6-3\bin\gdal\java目录下的所有.dll文件 copy到/java/jdk/bin下

 

 

在IDEA下新建一个maven工程,将解压后的gdal.jar加到library中如图或者添加pom.xml

 <dependency>
       <groupId>org.gdal</groupId>
       <artifactId>gdal</artifactId>
       <version>3.2.0</version>
       </dependency>

简单测试环境代码

package tif;
import org.gdal.gdal.Band;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;
public class ReadGeoInfo {
    /**
     * Created by ubuntu on 2015/7/10 0010.
     */
    public static void main(String[] args) {
        String fileName_tif = "C:\\Users\\h\\Desktop\\tif\\1.tiff";
        gdal.AllRegister();
        Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly);
        if (hDataset == null) {
            System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());
            System.err.println(gdal.GetLastErrorMsg());
            System.exit(1);
        }
        Driver hDriver = hDataset.GetDriver();
        System.out.println("Driver: " + hDriver.getShortName() + "/" + hDriver.getLongName());
        int iXSize = hDataset.getRasterXSize();
        int iYSize = hDataset.getRasterYSize();
        System.out.println("Size is" + iXSize + "," + iYSize);
        Band band = hDataset.GetRasterBand(1);
        int buf[] = new int[iXSize];
        for (int i = 0; i < 10; i++) {
            band.ReadRaster(0, i, iXSize, 1, buf);
            for (int j = 0; j < 10; j++) {
                System.out.print(buf[j] + ",");
                System.out.println("\n");
            }
        }
        hDataset.delete();

    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值