Springboot+GDAL3.x在windows上配置开发环境

1. GDAL简介

        GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据抽象库,用于处理各种栅格和矢量地理空间数据格式。它提供了一个统一的抽象数据模型,用于访问各种地理空间文件格式。GDAL通常用于GIS(地理信息系统)、遥感和地理空间分析等领域,可以用来转换不同的文件格式、处理栅格数据以及处理地理空间元数据。如果你在处理地理数据,GDAL是一个非常强大和实用的工具!

        GDAL的一个用c++语言编写的库,用于处理地理信息相关的数据包括转换,识别数据,格式化数据以及解析同时提供第三方语言的SDK包括python,java。上述需要编译后使用 java是需要使用jni接口调用实现方法在window平台是DLL文件,在linux平台是so文件,最后需要使用和初始化服务。

2. GDAL在windows中开发环境的配置

2.1 下载GDAL

进入网站http://www.gisinternals.com/release.php选择合适的版本下载。

不想去官网可以直接用我的下载好的资源:

https://download.csdn.net/download/c18213590220/88567662?spm=1001.2014.3001.5503

下载后会得到一个压缩包,解压到你所选文件目录。

2.2 配置环境变量

环境变量的配置应当参考SDKShell.bat里面的内容进行配置

可以看到上图中有GDAL_DATA,GDAL_DRIVER_PATH,PATH,PYTHONPATH这几个变量,由于我的是java,所以不用配置PYTHONPATH,故将 其他几个变量配置到环境变量中即可。

1. 配置GDAL_DATA

2. 配置GDAL_DRIVER_PATH

3. 新增path变量

我这里只配置了bin路径也是可以的

2.3 Springboot环境配置

引入maven

<dependency>
    <groupId>org.gdal</groupId>
    <artifactId>gdal</artifactId>
    <version>3.2.0</version>
</dependency>

将\bin\gdal\java路径下的gdal.jar和gdalalljni.dll配置到sprinboot项目中,将gdal.jar放置到resource/lib目录下,将gdalalljni.dll放置到项目的根路径下。

完成上述步骤就完成了GDAL环境配置

2.4 GDAL代码测试

我这里准备了一个基于shp裁剪tif影像的单元测试

    @Test
    void test3(){
        gdal.AllRegister();
     String inputImagePath ="D:\\gdal测试\\out22.tif"; // 输入影像文件路径
     String outputImagePath = "D:\\gdal测试\\out1126.tif"; // 输出影像文件路径
     String cutlinePath = "D:\\gdal测试\\裁剪面\\裁剪面.shp"; // 多边形文件路径

        // 打开输入影像
        Dataset inputDataset = gdal.Open(inputImagePath, gdalconst.GA_ReadOnly);
        if (inputDataset == null) {
            System.err.println("无法打开输入影像文件");
            System.exit(1);
        }

        // 设置裁剪选项
        Vector<String> warpOptions = new Vector<>();
        warpOptions.add("-cutline");
        warpOptions.add(cutlinePath);
        warpOptions.add("-crop_to_cutline");
        warpOptions.add("-of");
        warpOptions.add("GTiff"); // 输出格式为 GeoTIFF,可以根据需要调整

        // 创建 WarpOptions
        WarpOptions options = new WarpOptions(warpOptions);
        // 裁剪影像
        Dataset clippedDataset = gdal.Warp(outputImagePath, new Dataset[]{inputDataset}, options);
        // 释放资源
        inputDataset.delete();
        clippedDataset.delete();
    }

代码运行成功了,我去看了数据也跑出来了,虽然有Can't load requested DLL等系列报错,但是我网上查了说这种错误可以不用管。

运行结果:

这里贴一下我参考的连接:

java : springboot 整合 GDAL做shp解析 (shp转geojson) 踩坑合集 2020-07_springboot shp-CSDN博客

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后端小肥肠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值