0
我想使用爲Android編譯的GDAL重投一個地理空間圖像。我目前使用swig綁定,但正在考慮去jni/ndk。在Android版GDAL中使用WarpOptions(java通過swig綁定)
我已經用AutoCreateWarpedVRT函數成功地調整了圖像,但是我想使用更多的選項(例如裁剪輸出)。目前下面是我使用Warp進行翹曲的嘗試。它會生成一個完全沒有扭曲的輸出柵格,也不會應用-te選項。
GDAL swig綁定的文檔非常稀少(link),我懷疑我沒有得到WarpOptions的權利。
有關如何使WarpOptions(Vector)參數有效的任何建議(或爲此目的的任何???選項(向量)),我們感激不盡。
Dataset src = gdal.Open("input_raster.jpg");
src.SetProjection(src_wkt);
// Set reference points
double west = 451000;
double east = 501005;
double south = 6214995;
double north = 6257000;
int width = src.getRasterXSize();
int height = src.getRasterYSize();
GCP[] gcps = { new GCP(0, 0, west, north),
new GCP(0, height, west, south),
new GCP(width, 0, east, north),
new GCP(width, height, east, south)};
src.SetGCPs(gcps, dst_wkt);
// Try to warp
Dataset[] src_array = {src};
WarpOptions warpOptions = new WarpOptions(
new Vector(Arrays.asList("s_srs EPSG:32632", "t_srs EPSG:3857", "te 1000 820"))
);
Dataset warp = gdal.Warp("warp.vrt", src_array, warpOptions);
Dataset warp_png = driverPNG.CreateCopy("warp_raster.png", warp);
//Produces a raster output without errors, but does not apply the warp.
src.delete();
warp.delete();
warp_png.delete();