GDAL-java 环境配置(新)

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依赖



  4.0.0

  com.geovis
  gdal
  1.0-SNAPSHOT

  gdal

  
    UTF-8
    1.8
    1.8
  

  
    
      org.gdal
      gdal
      3.0.0
      system
      ${project.basedir}/lib/gdal-3.0.0.jar
    

    
      junit
      junit
      4.11
      test
    
  

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

你可能感兴趣的:(GDAL-java 环境配置(新))