|
@@ -5,6 +5,7 @@ import org.geotools.coverage.grid.GridCoordinates2D;
|
|
|
import org.geotools.coverage.grid.GridCoverage2D;
|
|
|
import org.geotools.gce.geotiff.GeoTiffReader;
|
|
|
import org.geotools.geometry.DirectPosition2D;
|
|
|
+import org.geotools.geometry.Envelope2D;
|
|
|
import org.opengis.referencing.operation.TransformException;
|
|
|
|
|
|
import java.awt.image.Raster;
|
|
@@ -27,6 +28,17 @@ public class ReadPixel {
|
|
|
int height = renderedImage.getHeight();
|
|
|
System.err.println("影像列数: " + width + ",影像行数: " + height);
|
|
|
|
|
|
+
|
|
|
+ Envelope2D envelope = coverage2D.getEnvelope2D();
|
|
|
+
|
|
|
+ System.err.println("影像列数1: " + envelope.getWidth() + ",影像行数: " + envelope.getHeight());
|
|
|
+ System.err.println("影像列数2: " + coverage2D.getGridGeometry().getGridRange2D().getWidth() + ",影像行数: " + coverage2D.getGridGeometry().getGridRange2D().getHeight());
|
|
|
+
|
|
|
+ // 计算像素大小(这里简化为X和Y方向相同)
|
|
|
+ double pixelWidth = envelope.getWidth() / coverage2D.getGridGeometry().getGridRange2D().getWidth();
|
|
|
+ double pixelHeight = envelope.getHeight() / coverage2D.getGridGeometry().getGridRange2D().getHeight();
|
|
|
+ System.err.println("X: " + pixelWidth + ",Y: " + pixelHeight);
|
|
|
+
|
|
|
// 获取影像的栅格数据
|
|
|
Raster raster = renderedImage.getData();
|
|
|
|
|
@@ -61,6 +73,7 @@ public class ReadPixel {
|
|
|
}
|
|
|
|
|
|
// 测试
|
|
|
+ //最好使用坐标系单位为米的,如果是度的还需要度转米
|
|
|
public static void main(String[] args) throws Exception {
|
|
|
String path = "C:\\Users\\SIWEI\\Desktop\\15区\\DEM大图\\ceshi.tif";
|
|
|
getPixelValue(path);
|