美文网首页
GDAL-java 环境配置(新)

GDAL-java 环境配置(新)

作者: WebGiser | 来源:发表于2022-01-20 20:36 被阅读0次

window的下载地址:http://www.gisinternals.com/,根据自己的需要下载。

1、下载已编译好的gdal,如我下载的 x64 位的 release-1911-x64-gdal-3-0-0-mapserver-7-4-0, 解压之后,会得到如下图所示文件:

image.png

2、jdk 配置gdal

将 gdal/bin目录下所有的dll扩展名文件 和 gdal/bin/gdal/java/gdalalljni.dll 拷贝到 jdk/bin目录下

3、配置环境变量

在环境变量中增加 PROJ_LIB 变量名,变量值为 gdal/bin/proj6/share。配置完后记得重启或注销计算机使配置生效。


image.png

4、在java项目中引入并使用gdal

1、新建maven项目,并创建lib文件夹,将 gdal/bin/gdal/java/gdal.jar 拷贝进来,并重命名为 gdal-3.0.0.jar
image.png
2、pom.xml中引用gdal依赖
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.geovis</groupId>
  <artifactId>gdal</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>gdal</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.gdal</groupId>
      <artifactId>gdal</artifactId>
      <version>3.0.0</version>
      <scope>system</scope>
      <systemPath>${project.basedir}/lib/gdal-3.0.0.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

5、测试

package com.geovis.tiff;

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 ReadTiff {
    public static void main(String[] args) {
        gdal.AllRegister();

        String rasterFilePath = "D:/study/GF1_PMS2_E103.5_N31.9_20130527_L1A0000101973-MSS2.tif";

        Dataset dataset = gdal.Open(rasterFilePath, gdalconstConstants.GA_ReadOnly);
        if (dataset == null) {
            System.out.println("GDAL read error: " + gdal.GetLastErrorMsg());
        }

        Driver driver = dataset.GetDriver();
        System.out.println("driver short name: " + driver.getShortName());
        System.out.println("driver long name: " + driver.getLongName());
        System.out.println("metadata list: " + driver.GetMetadata_List());

        int xsize = dataset.getRasterXSize();
        int ysize = dataset.getRasterYSize();
        int count = dataset.getRasterCount();
        String proj = dataset.GetProjection();
        Band band = dataset.GetRasterBand(1);

        // 左上角点坐标 lon lat: transform[0]、transform[3]
        // 像素分辨率 x、y方向 : transform[1]、transform[5]
        // 旋转角度: transform[2]、transform[4])
        double[] transform = dataset.GetGeoTransform();
        for(int i=0; i<transform.length; i++){
            System.out.println("transform: " + transform[i]);
        }
    }
}

相关文章

网友评论

      本文标题:GDAL-java 环境配置(新)

      本文链接:https://www.haomeiwen.com/subject/slcshrtx.html