有没有办法检查点/坐标是否可以处理下面描述的异常和问题。
我试着从网格覆盖(从栅格文件)创建一个信封,但似乎不起作用。
GridCoverage2D c1 = geography.getCoverage("layer1"); // this is a raster layer
Envelope2D e1 = c1.getEnvelope2D();
DirectPosition pos = new DirectPosition2D(lat, lon);
if(e1.contains(pos))
//point is valid尽管我检查了代码中所示的点位置,但还是得到了以下异常:
org.opengis.coverage.PointOutsideCoverageException: Coordinate (42.82, 10.608) is outside coverage.
at org.geotools.coverage.grid.GridCoverage2D.evaluate(GridCoverage2D.java:479)
at org.geotools.coverage.grid.GridCoverage2D.evaluate(GridCoverage2D.java:414)
at org.geotools.coverage.grid.GridCoverage2D.evaluate(GridCoverage2D.java:355)发布于 2019-08-15 23:12:06
我认为您需要在DirectPosition2d构造函数中更改lat,lon的顺序,使其显示为:
DirectPosition pos = new DirectPosition2D(lon, lat); 异常并不是从您发布的代码示例中抛出的,而是在稍后调用coverage.evaluate(pos)时发生的,因为位置实际上是无效的。默认情况下,Geotools需要(经度、经度)轴顺序-请参阅https://docs.geotools.org/latest/userguide/library/referencing/order.html
https://stackoverflow.com/questions/57502346
复制相似问题