gdal简介及部署引用

1.简介

GDAL(Geospatial Data Abstraction Library)是一个开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。

GDAL使用C++开发,因此要在Java环境下使用GDAL库,要用jni的方法调用dll库,我们可以下载GDAL的源码,按照官网的指引,在自己的Visual Studio里编译出dll。但是最省事的做法就是调用别人已经编译生成好的符合jni标准的动态dll库和jar包了,推荐这个网址:http://www.gisinternals.com/release.php,下载合适的文件。

本人下载的是

2.设置系统环境变量指定dll路径

右键计算机——》属性——》高级系统设置——》环境变量——》新建系统变量:

新建系统变量GDAL32_DLL

变量名:GDAL32_DLL

变量值:E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1\bin;E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1\bin\gdal\java

名字可以自己定义,指定GDAL DLL路径位置,和GDAL java版编译出路径。

在Path前面增加(如果没有Path系统变量,则新建)"%GDAL32_DLL%;",即path变为

%GDAL32_DLL%;%JAVA_HOME%/。。。。。。

3.后端加载jar包,通过pom.xml从maven仓库下载jar包(E:\release-1911-x64-gdal-2-3-2-mapserver-7-2-1自带的jar包不太好使)

4.示例

import org.gdal.ogr.*;
import static org.gdal.ogr.ogrConstants.wkbMultiPolygon;
import static org.gdal.ogr.ogrConstants.wkbPoint;
 生成缓冲区
    @RequestMapping(value = "/buffer")
    @ResponseBody
    public  String buffer(){
        List<Poi> user1=poiMapper.findUserALL();
        Geometry buffers=new Geometry(wkbMultiPolygon);
        for(int i=0;i<user1.size();i++){
            Float x= user1.get(i).getX();
            Float y= user1.get(i).getY();
            Geometry point=new Geometry(wkbPoint);
            point.AddPoint(x,y);
            Geometry buffer= point.Buffer(500);//单位是米
            buffers.AddGeometry(buffer);
        }
        return buffers.ExportToJson();
    }

5.GDAL(java版)api

https://www.gdal.org/java/overview-summary.html

发布了48 篇原创文章 · 获赞 24 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/xlp789/article/details/86546964