windows下gdal的java开发环境搭建

50 篇文章 32 订阅
42 篇文章 4 订阅

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

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

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

第一步、windows配置gdal环境

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

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

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

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

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

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

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

第二步、创建maven工程

<project xmlns="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目录下。完整目录如下:

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

package com.yelang.gdal_demo1;

import org.gdal.gdal.gdal;
import org.gdal.ogr.ogr;
import org.junit.Test;

public class TestGdal {

	@Test
	public void testDriver() {
		gdal.AllRegister();
		int count = ogr.GetDriverCount();
		for (int i = 0; i < count; i++) {
			String driverName = ogr.GetDriver(i).getName();
			System.out.print(driverName + "\t");
		}
		gdal.GDALDestroyDriverManager();
	}
}

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

ESRIC	PCIDSK	PDS4	VICAR	JP2OpenJPEG	PDF	MBTiles	EEDA	OGCAPI	DB2ODBC	ESRI Shapefile	MapInfo File	UK .NTF	LVBAG	OGR_SDTS	S57	DGN	OGR_VRT	REC	Memory	CSV	NAS	GML	GPX	LIBKML	KML	GeoJSON	GeoJSONSeq	ESRIJSON	TopoJSON	Interlis 1	Interlis 2	OGR_GMT	GPKG	SQLite	ODBC	WAsP	PGeo	MSSQLSpatial	OGR_OGDI	PostgreSQL	MySQL	OpenFileGDB	DXF	CAD	FlatGeobuf	Geoconcept	GeoRSS	GPSTrackMaker	VFK	PGDUMP	OSM	GPSBabel	OGR_PDS	WFS	OAPIF	Geomedia	EDIGEO	SVG	CouchDB	Cloudant	Idrisi	ARCGEN	ODS	XLSX	Elasticsearch	Walk	Carto	SXF	Selafin	JML	PLSCENES	CSW	VDV	GMLAS	MVT	NGW	MapML	TIGER	AVCBin	AVCE00	HTTP	

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

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

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜郎king

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

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

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

打赏作者

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

抵扣说明:

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

余额充值