Envelope testEnvelope = ReferencedEnvelope.reference(destinationEnvelope);
MathTransform mt = CRS.findMathTransform(sourceCRS, targetCRS);
PolygonExtractor polygonExtractor = new PolygonExtractor();
for (GridCoverage2D coverage : reprojectedCoverages) {
Polygon polygon = JTS.toGeometry((BoundingBox) coverage.getEnvelope2D());
Geometry postProcessed = handler.postProcess(mt, polygon);
// extract sub-polygons and displace
List<Polygon> polygons = polygonExtractor.getPolygons(postProcessed);
for (Polygon displaced : polygons) {
// check we are really inside the display area before moving one
Envelope intersection = testEnvelope.intersection(displaced