java版GDAL学习之路—01:环境部署

java版GDAL学习之路—01:环境部署

  • Windows开发环境部署
  • liux开发环境部署
    • 工具准备
    • 安装Sqlite3
    • 安装Proj
    • 安装Geos
    • 安装FileGDB_API
    • 安装GDAL

Windows开发环境部署

下载地址:https://www.gisinternals.com/。
建议使用最新版本(支持FileGDB)
本地部署:

  1. 解压后将GDAL的bin文件夹下所有的dll和bin/gdal/java下的dll文件拷贝到jdk安装路径的bin目录下
  2. 将\bin\gdal\plugins-external内的ogr_FileGDB.dll拷贝到\bin\gdal\plugins下
  3. 将GDAL的bin目录和\bin\gdal\plugins添加到环境变量(GDAL_DRIVER_PATH)
  4. 将proj.db所在路径添加到环境变量

使用:

  • 在IDEA里导入jar包(…\bin\gdal\java)

运行jar包:

  • jar的清单文件MANIFEST.MF里配置Class-Path: lib\gdal.jar(要运行的jar包当前路径下要有lib\gdal.jar)

liux开发环境部署

liux下部署gdal环境需要先安装各种编译工具和依赖包

工具准备

  1. 安装gcc和g++
#yum install gcc
#yum install gcc-c++

gcc和g++ :g++全名gcc-c++,可以通过命令gcc -v 和 g++ -v 来查看有没有安装

  1. 安装ant和swig
    java,ant,pcre和swig:其中pcre是swig所需的依赖项,因此必须先于swig安装。java、ant和swig都可以通过 -version查看。
yum install ant
yum install swig

在/etc/profile文件中配置好JAVA_HOME、ANT_HOME以及CLASSPATH后即可记得对这三个变量进行export,并把前两个加入到PATH中。记得#source /etc/profile#echo $PATH可以查看环境变量

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
export ANT_HOME=/usr/share/ant
CLASSPATH=.:$JAVE_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin

查看jdk的安装路径:https://blog.csdn.net/qq_42109746/article/details/98199275

安装Sqlite3

下载地址:https://www.sqlite.org/index.html

centos7.5下自带sqlite-3.7.17,版本太低,不满足proj需要的版本,现对sqlite进行升级
(1)sqlite3需要配置一个宏:
cd ./sqlite-autoconf-3320300(你解压后的sqlite文件夹)
找到./sqlite3.c文件,添加如下

#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
#define SQLITE_PRIVATE static
#endif
#define SQLITE_ENABLE_COLUMN_METADATA 1

/************** Begin file ctime.c *******************************************/
/*

(2)安装

# tar -zxvf sqlite-autoconf-3330000.tar.gz 
# cd sqlite-autoconf-3330000
//添加宏
# ./configure 
# make
# make install

主要安装到/usr/local/lib和/usr/local/bin下

(3)环境设置

#mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
#ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
#vim ~/.bashrc(按a键进行插入)
#export LD_LIBRARY_PATH="/usr/local/lib"
#source ~/.bashrc

输入sqlite3 -version查看版本

安装Proj

下载地址:http://download.osgeo.org/proj/

# tar -zxvf proj-7.0.1.tar.gz 
# cd proj-7.0.1 
# ./configure
# make
# make install

错误

​ 1、No package ‘sqlite3’ found

​ 2、Requested ‘sqlite3 >= 3.11’ but version of SQLite is 3.7.17

​ 3、No package ‘libtiff-4’ found

​ 4、configure: error: curl not found

解决:

​ 1、yum install sqlite-devel

​ 2、编辑/etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export SQLITE3_CFLAGS=/usr/local/include
export SQLITE3_LIBS=/usr/local/lib/libsqlite3.la

​ 3、yum install -y libtiff libtiff-devel.x86_64

​ 4、yum install -y libcurl-devel.x86_64

安装Geos

下载地址:http://download.osgeo.org/geos/

#tar jxvf geosXXX.tar.bz2
#cd geosXXX
#./configure
#make 
#make install

安装FileGDB_API

下载地址:https://appsforms.esri.com/products/download/#File_Geodatabase_API_1.4

1.5版本:https://github.com/Esri/file-geodatabase-api

#tar -zxvf XXX.tar.gz
#解压后的文件夹放到/usr/local下,解压后得到的文件夹下lib文件夹里的文件放到/usr/local/lib下

java版GDAL学习之路—01:环境部署_第1张图片

java版GDAL学习之路—01:环境部署_第2张图片

安装GDAL

下载地址:http://download.osgeo.org/gdal/

配置动态链接库,让gdal能找到proj和geos,共享文件默认安装在/usr/local/lib位置下

#cd /etc/ld.so.conf.d/
#touch local.conf
#echo "/usr/local/lib" > local.conf

安装

# tar -zxvf gdal-3.3.3.tar.gz
# cd gdal-3.3.3
//要支持FileGDB驱动
# CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" ./configure --with-fgdb=/usr/local/FileGDB_API-64(你解压后filegdb位置)
//不需要支持FileGDB
# ./configure
# make
# make install
检测是否成功
#gdalinfo --version

编译Java

找到gdal-xxx/swig/java/java.opt 配置 JAVA_HOME 路径

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64

然后:

#cd gdal-3.2.0/swig/java/ 
#make 
#make install

成功后会生成gdal.jar包,以及一些.so/.lo/.la/.o/.c文件

把/swig/java中生成的gdal.jar文件复制到$JAVA_HOME/jre/lib/ext下

把*.so、.lo、.o、.la、.c复制到/usr/local/lib(/usr/local/lib要添加到LD_LIBRARY_PATH)

你可能感兴趣的:(GDAL,java,intellij-idea)