/**
* 使用GeoTools截取tif影像
*
* @param tiffFile tiff
* @param saveFile save
* @param geometry geometry
*/
public static void cropCoverageByGeoTools(String tiffFile, String saveFile, Geometry geometry) {
try {
Polygon polygon = (Polygon) geometry;
// 读取.tif文件
GeoTiffReader reader = new GeoTiffReader(new File(tiffFile));
GridCoverage2D coverage = reader.read(null);
// 获取栅格覆盖范围的坐标参考系统
CoordinateReferenceSystem coverageCRS = coverage.getCoordinateReferenceSystem();
// 获取裁剪面的坐标参考系统
CoordinateReferenceSystem polygonCRS = CRS.getAuthorityFactory(true).createCoordinateReferenceSystem("EPSG:" + polygon.getSRID());
// 如果两者的坐标参考系统不同,则进行坐标转换
polygon = (Polygon) CRSConvertByCoordinateReferenceSystem(polygonCRS, coverageCRS, polygon);
GridCoverage crop = (GridCoverage) Operations.DEFAULT.crop(coverage, polygon);
// 写出裁剪后的.tif文件
GeoTiffWriter writer = new GeoTiffWriter(new File(saveFile));
writer.write(crop, null);
writer.dispose();
System.out.println("成功");
} catch (Exception e) {
e.printStackTrace();
}
}
GeoTools剪切多边形tif
最新推荐文章于 2024-05-09 15:20:26 发布