XRectangle2D.intersect(coverageRequestedRasterArea, coverageRasterArea, coverageRequestedRasterArea);
private static Rectangle2D createMapBoundary(final Product product, CoordinateReferenceSystem targetCrs) { try { final CoordinateReferenceSystem sourceCrs = product.getGeoCoding().getImageCRS(); final int sourceW = product.getSceneRasterWidth(); final int sourceH = product.getSceneRasterHeight(); final Rectangle2D rect = XRectangle2D.createFromExtremums(0.5, 0.5, sourceW - 0.5, sourceH - 0.5); int pointsPerSide = Math.max(sourceH, sourceW) / 10; pointsPerSide = Math.max(9, pointsPerSide); final ReferencedEnvelope sourceEnvelope = new ReferencedEnvelope(rect, sourceCrs); final ReferencedEnvelope targetEnvelope = sourceEnvelope.transform(targetCrs, true, pointsPerSide); double minX = targetEnvelope.getMinX(); double width = targetEnvelope.getWidth(); if (product.getGeoCoding().isCrossingMeridianAt180()) { minX = -180.0; width = 360; } return new Rectangle2D.Double(minX, targetEnvelope.getMinY(), width, targetEnvelope.getHeight()); } catch (Exception e) { throw new IllegalStateException(e); } }
final XRectangle2D rasterBounds_=new XRectangle2D(raster.getMinX()+0.5, raster.getMinY()+0.5, raster.getWidth()-1, raster.getHeight()-1); try { bounds = new ReferencedEnvelope(CRS.transform(mt2D, rasterBounds_, null),gc2d.getCoordinateReferenceSystem2D());
private Rectangle createQueryGridEnvelope(DirectPosition pos) { final AbstractGridCoverage2DReader reader = sourceRef.get(); try { MathTransform worldToGridTransform = reader.getOriginalGridToWorld(PixelInCell.CELL_CORNER).inverse(); DirectPosition midPos = worldToGridTransform.transform(pos, null); int x = (int) midPos.getOrdinate(0); int y = (int) midPos.getOrdinate(1); int halfWidth = CACHED_RASTER_WIDTH / 2; final Rectangle queryRect = new Rectangle( x - halfWidth, y - halfWidth, CACHED_RASTER_WIDTH, CACHED_RASTER_WIDTH); GridEnvelope gridEnv = reader.getOriginalGridRange(); Rectangle rect = new Rectangle( gridEnv.getLow(0), gridEnv.getLow(1), gridEnv.getSpan(0), gridEnv.getSpan(1)); XRectangle2D.intersect(queryRect, rect, queryRect); return queryRect; } catch (Exception ex) { throw new RuntimeException(ex); } }
if (boundingBox == null) { final Envelope envelope = getEnvelope(); Rectangle2D geographicArea = XRectangle2D.createFromExtremums( envelope.getMinimum(xDimension), envelope.getMinimum(yDimension),
XRectangle2D.intersect(sourceArea, selectedlevel.rasterDimensions, sourceArea);//make sure roundings don't bother us
XRectangle2D.intersect(sourceArea, selectedlevel.rasterDimensions, sourceArea);//make sure roundings don't bother us
XRectangle2D.intersect(levelRasterArea, rasterBounds, rasterBounds);
final Rectangle tempRect = finalRange.toRectangle(); XRectangle2D.intersect(tempRect, requestedDim, tempRect); requestedDim.setRect(tempRect); } catch (TransformException te) {
XRectangle2D.intersect(imageBounds, rasterBounds, imageBounds);
? (GridEnvelope2D) gridEnvelope : new Rectangle(); XRectangle2D.intersect(integerRasterArea, originalArea, integerRasterArea);
XRectangle2D.intersect(destinationRasterArea, requestedRasterArea, destinationRasterArea); } catch (NoninvertibleTransformException e) { throw new DataSourceException(e);
XRectangle2D.intersect(destinationRasterArea, requestedRasterArea, destinationRasterArea); } catch (NoninvertibleTransformException e) { throw new DataSourceException(e);
XRectangle2D.intersect( destinationRasterArea, requestedRasterArea, destinationRasterArea); } catch (NoninvertibleTransformException e) {