在使用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.9.3.tar.gz
[root@bogon gdal]# cd proj-4.9.3/
[root@bogon proj-4.9.3]# ./configure
[root@bogon proj-4.9.3]# make
[root@bogon proj-4.9.3]# make install

2、编译geos

[root@bogon gdal]# tar -jxvf geos-3.6.2.tar.bz2
[root@bogon gdal]# cd geos-3.6.2/
[root@bogon geos-3.6.2]# ./configure
[root@bogon geos-3.6.2]# make
[root@bogon geos-3.6.2]# make install

3、编译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
[root@bogon gdal-2.2.3]# make install

若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/lib64目录下,经测试,java调用gdal正常运行。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:23 天前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐