Java使用GDAL

    在使用Java处理图像时使用Gdal,为了保持软件在Windows/Linux的通用性,本文着重介绍Windows和Linux环境的gdal配置,为了简便期间,使用gdal-2.2.3。

一、Windows

    Windows下gdal配置比较简单,下载release-1600-x64-gdal-2-2-3-mapserver-7-0-7.zip,解压缩。将“……\release-1600-x64-gdal-2-2-3-mapserver-7-0-7\bin”添加到环境变量path中。进入“……\release-1600-x64-gdal-2-2-3-mapserver-7-0-7\bin\gdal\java”目录,包含gdal.jar、gdalconstjni.dll、gdaljni.dll、ogrjni.dll、osrjni.dll。将gdal.jar拷贝到java工程的lib中,将gdalconstjni.dll、gdaljni.dll、ogrjni.dll、osrjni.dll拷贝到java.library.path路径中,此处选为jdk安装路径C:\Program Files\Java\jdk1.8.0_121\bin和C:\Program Files\Java\jdk1.8.0_121\jre\bin目录下,经测试,java调用gdal正常运行。

二、Linux

    Linux配置gdal比较繁琐, 在进行编译前,首先查看系统是否有gcc-c++、gcc、swig等基础环境。下载gdal-2.2.3.tar.gz,编译gdal,之后编译gdal-java。大体流程如下,中间根据提示可能安装若干工具:

1、编译proj

     在编译gdal之前,需要 proj4以提供投影支持,因此先安装

[root@bogon gdal]# tar zxvf proj-4.8.0.tar.gz
[root@bogon gdal]# cd proj-4.8.0/
[root@bogon proj-4.8.0]# ./configure
[root@bogon proj-4.8.0]# make
[root@bogon proj-4.8.0]# make install

2、编译gdal

[root@bogon gdal]# tar zxvf gdal-2.2.3.tar.gz 
[root@bogon gdal]# cd gdal-2.2.3
[root@bogon gdal-2.2.3]# ./configure
[root@bogon gdal-2.2.3]# make

若make遇到以下错误,请参照本人另一篇博客。


ogr_sfcgal.h:34:34:致命错误:SFCGAL/capi/sfcgal_c/h:没有那个文件或目录
#include<SFCGAL/capi/sfcgal_c.h>

ogr_sfcgal.h:34:34:fatal error:SFCGAL/capi/sfcgal_c/h:No such file or directory

#include<SFCGAL/capi/sfcgal_c.h>


经过一段时间,编译完成后,编辑swig/java/java.opt,配置JAVA_HOME 路径。

#
# Java Stuff
JAVA_HOME = /usr/java/jdk1.8.0_151
JAVADOC=$(JAVA_HOME)/bin/javadoc
JAVAC=$(JAVA_HOME)/bin/javac
JAVA=$(JAVA_HOME)/bin/java
JAR=$(JAVA_HOME)/bin/jar
JAVA_INCLUDE=-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux

 编译gdal的java库:

[root@bogon gdal-2.2.3]#cd swig/java
[root@bogon java]# make

       编译后再当前目录生成gdal.jar、ibgdalconstjni.so、libgdaljni.so、libgnmjni.so、libogrjni.so、libosrjni.so。在Linux中使用Linux版的gdal.jar,将ibgdalconstjni.so、libgdaljni.so、libgnmjni.so、libogrjni.so、libosrjni.so拷贝到java.library.path路径中,此处放在/usr/java/packages/lib/amd64目录下,经测试,java调用gdal正常运行。

转载自:https://blog.csdn.net/wm6752062/article/details/80897411

You may also like...