admin 管理员组

文章数量: 887006

本文接前文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/POM/4.0.0"
	xmlns:xsi="http://www.w3/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache/POM/4.0.0 http://maven.apache/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>
		<mavenpiler.source>1.8</mavenpiler.source>
		<mavenpiler.target>1.8</mavenpiler.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进行相应开发。希望对你有帮助,文中有不当之处,请交流指出。

本文标签: 环境 Windows Gdal java