gdal在java环境下使用,需要将gdal编译为java可用的版本,具体编译步骤,以后再补,今天先使用别人编译好的java版本gdal,下载地址:http://www.gisinternals.com/,根据自己的需要下载。
配置步骤:
(1)下载已编译好的gdal,如我下载的 x64 位的 release-1911-x64-gdal-2-2-3-mapserver-7-0-7, 解压之后,会得到如下图所示文件:
bin目录下文件列表:
(2)配置gdal dll路径
有2种方式测试成功:
第1种:将bin目录下dll扩展名文件(不包含bin目录下文件夹内的dll),拷贝到 java 工程所用 jdk 目录下 bin 文件内,如jdk路径是:C:\Program Files\Java\jdk1.7.0_79,则需要将gdal bin目录下的dll 拷贝到C:\Program Files\Java\jdk1.7.0_79\bin目录;
第2种:将将bin目录下dll扩展名文件(不包含bin目录下文件夹内的dll)拷贝到java工程根目录下。
(3)新建java工程
新建的java工程,需要引入解压gdal得到的bin目录下,gdal\java目录下的 gdal.jar ,并将该目录下的 dll 文件入到工程根目录下。
之后,可以新建如下类,进行验证:
importjava.io.File;importorg.gdal.gdal.Band;importorg.gdal.gdal.Dataset;importorg.gdal.gdal.Driver;importorg.gdal.gdal.gdal;importorg.gdal.gdalconst.gdalconstConstants;public classGDALTestEnvironment {public voidreadFlt() {
gdal.AllRegister();
String projectRootPath= new File("").getAbsolutePath();
String rasterFilePath=projectRootPath+ "/src/cn/decom/resource/rain_2015_04_09__14_00_hourly.flt";//测试用文件路径
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();
System.out.println("transform: " + transform[0]);
}public static voidmain(String[] args) {
GDALTestEnvironment environment= newGDALTestEnvironment();
environment.readFlt();
}
}
(5)有关引用 gdal 库的工程打包之后的运行,需要后续补充。