原因: gdal提供的java文档很少, 复杂参数格式很简单Vector
代表所有。
如:RasterizeLayer(Dataset dataset, int[] bands, Layer layer, double[] burn_values, java.util.Vector options)
;
Warp(java.lang.String dest, Dataset[] object_list_count, WarpOptions warpAppOptions)
WarpOptions(java.util.Vector options)。这些参数找起来很麻烦,格式也不一致。参数key可以参照官方文档和python相关(资料相对多一点)
相关功能的 Option参数构造
-
gdal定义了Options 类型的
这种option参数的构造需要参考 https://gdal.org/programs/index.html#raster-programs这些对应的参数列表。不能参考python里面Option相关类型的key示例
WarpOptions
Dataset input_raster0 = gdal.Open(input_raster); Vector vector = new Vector(); vector.add("-cutline"); vector.add(input_shape); vector.add("-crop_to_cutline"); vector.add(true); Dataset ds = gdal.Warp(output_raster, new Dataset[]{input_raster0}, new WarpOptions(vector)); if (ds != null) { System.out.println("success"); }
-
参数直接是 vector类型的
这种参数的构造可以参照下python的构造key,是一致的示例:
RasterizeLayer
的option参数Vector<String> rasterizeOption = new Vector<>(); rasterizeOption.add(String.format("ATTRIBUTE=%s", bandField)); gdal.RasterizeLayer(desDataset, new int[]{1}, srcLayer, null, rasterizeOption);
其他的,欢迎补充指正