gdal java api_Java使用GDAL库
GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協(xié)議下的開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫。它利用抽象數(shù)據(jù)模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數(shù)據(jù)轉(zhuǎn)換和處理。
GDAL官方網(wǎng)址:http://www.gdal.org/,它能支持當(dāng)前流行的各種地圖數(shù)據(jù)格式,包括柵格和矢量地圖,具體參考官方網(wǎng)站。該庫使用C/C++開發(fā),在java中使用需要自己編譯,這里從網(wǎng)上下了好心網(wǎng)友編譯好的庫,在例子中就沒有對庫進行編譯了。具體編譯步驟可以參考
Java使用gdal時,只需將dll庫放在項目根目錄下即與src同級,然后引入jar即可,以下是在NetBeans下的展現(xiàn)形式:
使用gdal讀取柵格數(shù)據(jù)
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;
public class testgdal {
/**
* @param args
*/
public static void main(String[] args)
{
String fileName_tif = "F:\\aa.tif";
gdal.AllRegister();
Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly);
if (hDataset == null)
{
System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());
System.err.println(gdal.GetLastErrorMsg());
System.exit(1);
}
Driver hDriver = hDataset.GetDriver();
System.out.println("Driver: " + hDriver.getShortName() + "/" + hDriver.getLongName());
System.out.println("Size is " + hDataset.getRasterXSize() + ", "
+ hDataset.getRasterYSize());
hDataset.delete();
// 可選
gdal.GDALDestroyDriverManager();
}
}
使用gdal的ogr讀取矢量數(shù)據(jù)
import org.gdal.ogr.DataSource;
import org.gdal.ogr.Layer;
import org.gdal.ogr.ogr;
/**
*
* @author WZH
*/
public class testogr {
/**
* @param args
*/
public static void main(String[] args)
{
String fileName_shp = "F:\\chengduroad.shp";
ogr.RegisterAll();
//在讀取shp文件時需要將對應(yīng)的shx文件放在同一目錄下,否則會出錯
DataSource ds = ogr.Open(fileName_shp);
if(ds == null) {
System.out.println("未找到文件!");
return;
}
//獲取圖層總數(shù)
int count = ds.GetLayerCount();
for(int i=0; i
Layer layer = ds.GetLayer(i);
double[] extend = layer.GetExtent();
for(int j=0; j
System.out.println(extend[j]);
}
}
}
}TestGDAL源碼:
http://download.csdn.net/detail/a78460750/7802701
總結(jié)
以上是生活随笔為你收集整理的gdal java api_Java使用GDAL库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫有学c的必要吗_可以一边
- 下一篇: python selenium采集速卖通