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();