一、簡介
GDAL是柵格和矢量地理空間數據格式的轉換器庫,由開源地理空間基金會根據X / MIT樣式的開源許可證發布。作為一個庫,它為調用的應用程序提供了所有支持格式的單個柵格抽象數據模型和單個矢量抽象數據模型。它還帶有用於數據轉換和處理的各種有用的命令行實用程序。
二、配置
1、下載編譯好的GDAL庫https://www.gisinternals.com/release.php,也可以自己源碼編譯;
2、將路徑 \release-1911-x64-gdal-3-2-0-mapserver-7-6-1\bin 下的所有dll拷貝到jre目錄下,(鄙人的是C:\Program Files\Java\jdk1.8.0_151\jre\bin);
3、將路徑 \release-1911-x64-gdal-3-2-0-mapserver-7-6-1\bin\gdal\java下的gdalalljni.dll拷貝到步驟2的目錄下;
4、在項目中添加並引用\release-1911-x64-gdal-3-2-0-mapserver-7-6-1\bin\gdal\java下的jar和dll;
5、新建java程序寫代碼調試,引入gdal。
三、代碼
import java.io.File; import org.gdal.gdal.Band; import org.gdal.gdal.Dataset; import org.gdal.gdal.Driver; import org.gdal.gdal.gdal; import org.gdal.gdalconst.gdalconstConstants; public class gdaltest { public void dog() { gdal.AllRegister(); String rasterFilePath ="F:\\傾斜攝影\\正射影像\\01可見光\\map\\result.tif";//測試用文件路徑 Dataset dataset = gdal.Open(rasterFilePath, gdalconstConstants.GA_ReadOnly); if (dataset == null) { System.out.println(gdal.GetLastErrorMsg()); } Driver driver = dataset.GetDriver(); System.out.println("driver short name: " + driver.getShortName()); System.out.println("driver long name: " + driver.getLongName()); System.out.println("metadata list: " + driver.GetMetadata_List()); String proj = dataset.GetProjection(); Band band = dataset.GetRasterBand(1); System.out.println(proj); System.out.println(band); } public static void main(String[] args) { gdaltest test = new gdaltest(); test.dog(); } }
四、結果