| | |
| | | import org.gdal.gdal.Dataset; |
| | | import org.gdal.gdal.gdal; |
| | | import org.gdal.gdalconst.gdalconst; |
| | | import org.gdal.ogr.DataSource; |
| | | import org.gdal.ogr.Driver; |
| | | import org.gdal.ogr.Layer; |
| | | import org.gdal.ogr.ogr; |
| | | import org.gdal.ogr.*; |
| | | import org.gdal.osr.SpatialReference; |
| | | import org.gdal.osr.osr; |
| | | |
| | |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | | } |
| | | |
| | | public static Geometry getMinPoint(Dataset ds) |
| | | { |
| | | double[] transform = new double[6]; |
| | | ds.GetGeoTransform(transform); |
| | | |
| | | double xMin = transform[0]; |
| | | double yMin = transform[3] - ds.getRasterYSize() * transform[1]; |
| | | |
| | | Geometry point = new Geometry(ogr.wkbPoint); |
| | | point.AddPoint(xMin, yMin, 0); |
| | | |
| | | return Transform(ds, point); |
| | | } |
| | | |
| | | public static Geometry getMaxPoint(Dataset ds) |
| | | { |
| | | /* |
| | | * transform[0] 左上角x坐标 |
| | | * transform[1] 东西方向分辨率 |
| | | * transform[2] 旋转角度, 0表示图像 "北方朝上" |
| | | * |
| | | * transform[3] 左上角y坐标 |
| | | * transform[4] 旋转角度, 0表示图像 "北方朝上" |
| | | * transform[5] 南北方向分辨率 |
| | | */ |
| | | double[] transform = new double[6]; |
| | | ds.GetGeoTransform(transform); |
| | | |
| | | double xMax = transform[0] + (ds.getRasterYSize() * transform[1]); |
| | | double yMax = transform[3]; |
| | | |
| | | Geometry point = new Geometry(ogr.wkbPoint); |
| | | point.AddPoint(xMax, yMax, 0); |
| | | |
| | | return Transform(ds, point); |
| | | } |
| | | |
| | | public static Geometry Transform(Dataset ds, Geometry point) |
| | | { |
| | | point.AssignSpatialReference(ds.GetSpatialRef()); |
| | | if (ds.GetSpatialRef().IsGeographic() > 0) |
| | | { |
| | | return point; |
| | | } |
| | | |
| | | String srsName = ds.GetSpatialRef().GetName(); |
| | | //if (srsName.Contains(CGCS2000)) |
| | | //{ |
| | | // point.TransformTo(sr4490); |
| | | //} |
| | | //else |
| | | //{ |
| | | point.TransformTo(SR4326); |
| | | //} |
| | | point.SwapXY(); |
| | | |
| | | return point; |
| | | } |
| | | } |