在使用Java调用GDAL之前,先说明一下编译。在编译的时候,需要JRE、Ant和SWIG这三个东西,没有的先下载这两个东西,下载完之后,安装,ANT和SWIG直接解压就行,不用安装。接下来用记事本打开nmake.opt,找到第86行左右的地方,如下:
将上面的JAVA_HOME和ANT_HOME后面的路径修改为本地Java和Ant的路径,只要修改到主文件夹即可(就是有bin文件夹的那个文件夹),如果文件夹路径有空格的话,把路径用双引号括起来。然后把SWIG的目录也换成本机的目录。接下来就可以编译了。具体步如下:
正常情况下,执行完上面的,Java版本的GDAL应该就编译完成了。你会在swig\java目录中看到编译出来的一些文件,主要有下面几个文件:
如果有上面的文件的话,那就说明编译成功,如果没看,查看命令行编译的时候输出信息,根据输出信息排除错误重新生成。将上面五个文件以及编译GDAL的时候生成的gdal19.dll拷贝到一个新建的文件夹,用于后续的调用。
2、使用Eclipse新建一个工程,名字叫GDALTest,然后在这个工程中新建一个类叫GDALTestApp完成。打开GDALTestApp.java,修改里面的内容为下面的内容,然后保存,如图1所示。
保存完之后,将刚才生成的那些dll和jar文件拷贝到工程所在文件夹中,然后在工程右键,选择Build Path->configure build path,弹出属性对话框,然后切换到libraries标签,点击Add Jars,选择gdal.jar和名字中有ini的dll文件,添加到lib中,如图2所示,然后确定。
Java中,读取数据用的接口是ReadRaster,这个函数已经针对所有的数据类型进行了重载,所以读取某种类型的数据,只需要声明对应的类型即可。运行上面的程序,会输出下面的内容:
Driver: GTiff/GeoTIFF
Size is 6001, 6001
64, 64, 64, 63, 62, 62, 64, 63, 61, 61,
61, 62, 63, 66, 64, 64, 63, 63, 62, 61,
62, 61, 63, 64, 65, 62, 63, 61, 63, 64,
64, 63, 63, 62, 63, 65, 64, 64, 62, 63,
64, 61, 63, 63, 63, 64, 65, 63, 62, 64,
64, 63, 62, 63, 62, 62, 63, 64, 64, 64,
64, 63, 63, 64, 65, 62, 61, 63, 62, 63,
62, 64, 63, 64, 63, 60, 62, 61, 62, 63,
62, 65, 63, 63, 62, 60, 64, 63, 61, 62,
63, 65, 64, 63, 62, 61, 64, 63, 60, 61,