windows下gdal的java开发环境搭建

简介: 本文介绍了gdal在windows环境下怎么搭建java开发,同时提供一个开发示例,通过输出gdal支持的数据驱动来演示其支持的数据类型,同时表明我们的环境搭建完成,可以基于java进行相应开发。

     本文接前文gis利器之Gdal(一),前面简单介绍了gdal工具是什么,具体有什么功能。对于gdal的具体功能,感兴趣的去官网看看。日常对于gis常见的矢量和栅格数据进行处理,gdal都是拿手的。今天简单说一下在windows下基于java搭建开发环境,为下一步说明如何进行数据处理奠定基础。

     打开下载的gdal编译包,解压如下所示:

image.png

bin目录下就是编译出来可以供java调用的dll文件,

image.png

第一步、windows配置gdal环境

     在机器中先想配置gdal环境,总体来说,应该是有三种方式。

     1、将bin目录下的dll都拷贝到jdk安装目录中,这样做的好处是可以直接利用java jdk的环境变量就可以读取和调用gdal相关配置和方法。缺点就是jdk会变大,同时也污染了jdk。

     2、创建gdal系统环境变量,跟jdk一样。创建GDAL_HOME,值是gdal的解压目录。

image.png

     将bin等配置到path环境变量中。

image.png

  增加一个PROJ_LIB,防止在读取Shp文件时会报错。

image.png

  3、可以在程序运行时指定工作环境目录。形如下:

//gdal.SetConfigOption("GDAL_DATA","F:\\GDAL学习文件夹\\release-1900-x64-gdal-2-3-2-mapserver-7-2-1\\bin\\gdal-data");

第二步、创建maven工程

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yelang</groupId><artifactId>gdal_demo1</artifactId><version>0.0.1-SNAPSHOT</version><name>gdal_demo1</name><description>gdal的第一次试验</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>org.gdal</groupId><artifactId>gdal</artifactId><version>3.4.3</version><scope>system</scope><systemPath>${project.basedir}/lib/gdal.jar</systemPath></dependency><dependency><groupId>net.sf.ucanaccess</groupId><artifactId>ucanaccess</artifactId><version>4.0.4</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies></project>

     将gdal文件中bin\gdal\java下的gdal.jar拷贝到工程的lib目录下。完整目录如下:

image.png

第三步、编写测试代码,简单示例如下:

packagecom.yelang.gdal_demo1;
importorg.gdal.gdal.gdal;
importorg.gdal.ogr.ogr;
importorg.junit.Test;
publicclassTestGdal {
@TestpublicvoidtestDriver() {
gdal.AllRegister();
intcount=ogr.GetDriverCount();
for (inti=0; i<count; i++) {
StringdriverName=ogr.GetDriver(i).getName();
System.out.print(driverName+"\t");
        }
gdal.GDALDestroyDriverManager();
    }
}

使用gdal.AllRegister();进行初始注册,这样才能使用后续的代码。记得在最后要销毁相应的驱动管理对象,这一点跟事务的管理方式比较相似。运行起来可以看到以下结果:

ESRICPCIDSKPDS4VICARJP2OpenJPEGPDFMBTilesEEDAOGCAPIDB2ODBCESRIShapefileMapInfoFileUK .NTFLVBAGOGR_SDTSS57DGNOGR_VRTRECMemoryCSVNASGMLGPXLIBKMLKMLGeoJSONGeoJSONSeqESRIJSONTopoJSONInterlis1Interlis2OGR_GMTGPKGSQLiteODBCWAsPPGeoMSSQLSpatialOGR_OGDIPostgreSQLMySQLOpenFileGDBDXFCADFlatGeobufGeoconceptGeoRSSGPSTrackMakerVFKPGDUMPOSMGPSBabelOGR_PDSWFSOAPIFGeomediaEDIGEOSVGCouchDBCloudantIdrisiARCGENODSXLSXElasticsearchWalkCartoSXFSelafinJMLPLSCENESCSWVDVGMLASMVTNGWMapMLTIGERAVCBinAVCE00HTTP

     以上就将gdal支持的所有驱动类型打印出来,说明gdal支持以上数据的读写。

总结

    本文介绍了gdal在windows环境下怎么搭建java开发,同时提供一个开发示例,通过输出gdal支持的数据驱动来演示其支持的数据类型,同时表明我们的环境搭建完成,可以基于java进行相应开发。希望对你有帮助,文中有不当之处,请交流指出。

目录
相关文章
|
3月前
|
Oracle Java 关系型数据库
搭建Java开发环境:
搭建Java开发环境:
54 0
|
17天前
|
Java 编译器 开发工具
Java开发环境
要开始Java开发,需要安装JDK(Java Development Kit)。JDK包含了JRE(Java Runtime Environment)和一系列开发工具,如编译器(javac)和调试器(jdb)。配置好环境变量后,你可以在命令行中编译并运行Java程序
|
1月前
|
数据采集 分布式计算 Java
Kettle的Java开发环境需要什么jar包?
【10月更文挑战第24天】Kettle的Java开发环境需要什么jar包?
86 2
|
2月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
42 1
|
2月前
|
Java Linux Windows
windows版java版本管理器
本文介绍了如何在Windows上使用JDK版本管理器jvms来管理多个Java版本,包括下载、初始化、列出本地安装的JDK版本、在线查看可用版本、切换和安装特定版本的Java。
74 0
windows版java版本管理器
|
3月前
|
存储 安全 开发工具
windows开发环境备份,再也不怕重装系统了
【9月更文挑战第2天】在Windows系统中备份开发环境可大幅提升重装系统后的效率。本文详细介绍五个关键步骤:备份开发工具及软件包;保存配置文件;备份数据库与数据文件;确保代码仓库的安全;记录安装步骤与注意事项。遵循这些建议,重装系统时可迅速恢复开发环境,避免重复劳动。
|
4月前
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
|
4月前
|
Oracle Java 关系型数据库
搭建Java开发环境
搭建Java开发环境
51 0
|
4月前
|
Java 开发工具 Spring
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
【Azure Spring Cloud】使用azure-spring-boot-starter-storage来上传文件报错: java.net.UnknownHostException: xxxxxxxx.blob.core.windows.net: Name or service not known
|
4月前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包