本文接前文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工程
<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目录下。完整目录如下:
第三步、编写测试代码,简单示例如下:
packagecom.yelang.gdal_demo1; importorg.gdal.gdal.gdal; importorg.gdal.ogr.ogr; importorg.junit.Test; publicclassTestGdal { publicvoidtestDriver() { 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进行相应开发。希望对你有帮助,文中有不当之处,请交流指出。