基于windows、GDAL2.2.3版本和Java集成安装和使用GDAL库的方法
一、下载gdal windows版本64位2.2.3版本
下载地址:
https://www.gisinternals.com/archive.php
找到gdal-202-1911-x64-core.msi下载并安装
安装后默认目录为:C:\Program Files\GDAL
二、配置环境变量
a.系统变量-path中新增:C:\Program Files\GDAL
b.系统变量-新增-变量名:GDAL_DATA,变量值:C:\Program Files\GDAL\gdal-data
c.系统变量-新增-变量名:GDAL_DRIVER_PATH,变量值:C:\Program Files\GDAL\gdalplugins
测试gdal安装是否成功,cmd输入:
C:\Users\hsg>gdalinfo --version
GDAL 2.2.3, released 2017/11/20
然后必须重启电脑,path系统变量才生效。
三、java集成gdal
java集成gdal主要是引gdal.jar依赖以及配置jdk可以调用到.dll动态链接库。
步骤:
1.把C:\Program Files\GDAL\下所有的.dll文件全部复制到jdk/bin/下;
2.把C:\Program Files\GDAL\java\下的gdal.jar复制到java项目src/main/resources/gdal/下;
3.pom.xml中引入gdal.jar包(即java项目src/main/resources/gdal/gdal.jar)
特别注意:gt-ogr-jni 24.0版本中引用的是gdal2.2.0版本,但网上未下载到gdal2.2.0版本的安装包
这里只找到gdal2.2.3版本的安装
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-ogr-jni</artifactId>
<version>24.0</version>
<exclusions>
<exclusion>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
</exclusion></exclusions>
</dependency>
<dependency>
<groupId>org.gdal</groupId>
<artifactId>gdal</artifactId>
<version>2.2.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/gdal/gdal.jar</systemPath>
</dependency>
四、测试代码
package org.example;
import org.gdal.osr.*;
import org.gdal.ogr.*;
import org.gdal.gdal.*;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
//System.load("gdalalljni.dll");
System.out.println(System.getProperty("java.library.path"));
// 设置java.library.path=path/to/gdal/library
//System.setProperty("java.library.path", "C:\\Program Files\\GDAL");
//
System.out.println(System.getProperty("java.library.path"));
//
ogr.RegisterAll();
int c=ogr.GetDriverCount();
System.out.println(c);
for(int i=0;i<c;i++)
{
System.out.println(ogr.GetDriver(i).getName());
}
gdal.GDALDestroyDriverManager();
}
}
测试结果如下所示:
Hello World!
76
netCDF
PCIDSK
JP2OpenJPEG
PDF
DB2ODBC
ESRI Shapefile
MapInfo File
UK .NTF
OGR_SDTS
S57
DGN
OGR_VRT
REC
Memory
BNA
CSV
NAS
GML
GPX
LIBKML
KML
GeoJSON
Interlis 1
Interlis 2
OGR_GMT
GPKG
SQLite
ODBC
WAsP
PGeo
MSSQLSpatial
PostgreSQL
MySQL
OpenFileGDB
XPlane
DXF
CAD
Geoconcept
GeoRSS
GPSTrackMaker
VFK
PGDUMP
OSM
GPSBabel
SUA
OpenAir
OGR_PDS
WFS
HTF
AeronavFAA
Geomedia
EDIGEO
GFT
SVG
CouchDB
Cloudant
Idrisi
ARCGEN
SEGUKOOA
SEGY
ODS
XLSX
ElasticSearch
Walk
Carto
SXF
Selafin
JML
PLSCENES
CSW
VDV
GMLAS
TIGER
AVCBin
AVCE00
HTTP
#—the—end—