GDAL的JAVA开发环境搭建(IDEA)

软件版本:gdal-3.20、jdk-1.80

一、开发环境搭建流程

  1. 首先从官网下载编译好的二进制包 GISInternals Support Site,名称release-1911-x64-gdal-3-2-0-mapserver-7-6-1.zip

下载完成后的文件如下:

文件解压后如下:

  1. 将gdal的bin目录下所有dll拷贝到jdk\bin目录下(或\jdk\jre\bin,根据自己情况选择),如图所示:

  1. 在IDEA中创建一个JAVA项目,在项目根目录创建lib目录,将3个必要的文件拷贝到lib中(\bin\gdal302.dllbin\gdal\java\gdalalljni.dllbin\gdal\java\gdal.jar)。

  1. 在项目中引用gdal的库。文件-项目结构-项目设置-库-添加-gdal.jar

  1. 开始编码。在项目的java文件夹中创建一个类,编写如下代码:
import org.gdal.gdal.gdal;
import org.gdal.ogr.ogr;

public class HelloGdal {
    public static void printVectorDrivers(){
        ogr.RegisterAll();
        int count =ogr.GetDriverCount();
        System.out.println(count);
        for(int i=0; i<count; i++){
            System.out.println(ogr.GetDriver(i).GetName());
        }
        gdal.GDALDestroyDriverManager();
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        printVectorDrivers();
    }
}

运行结果如下:

二、问题总结

  1. 引用库报错
Native library load failed.
java.lang.UnsatisfiedLinkError: no gdalalljni in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.AllRegister()V

这个问题是gdal的dll文件拷贝位置不正确,导致java程序不能找到相应的dll引用。将dll拷贝到jdk\bin或jdk\jre\bin,这里自己多尝试几次。

  1. 找不到proj.db

在系统环境变量中配置,PROJ_LIB:C:\Program Files\GDAL\projlib\proj.db

如果没有该文件,下载gdal core进行安装。

参考:https://blog.csdn.net/theonegis/article/details/52585613

posted @ 2020-11-30 16:33  xustch  阅读(4872)  评论(0编辑  收藏  举报