CrsGeoCoding extends AbstractGeoCoding { @Override public boolean isCrossingMeridianAt180() { return crossingMeridianAt180; } CrsGeoCoding(CoordinateReferenceSystem mapCRS,
                        int imageWidth,
                        int imageHeight,
                        double easting,
                        double northing,
                        double pixelSizeX,
                        double pixelSizeY);  CrsGeoCoding(CoordinateReferenceSystem mapCRS,
                        int imageWidth,
                        int imageHeight,
                        double easting,
                        double northing,
                        double pixelSizeX,
                        double pixelSizeY,
                        double referencePixelX,
                        double referencePixelY);  CrsGeoCoding(final CoordinateReferenceSystem mapCRS,
                        final Rectangle imageBounds,
                        final AffineTransform imageToMap); @Override MathTransform getImageToMapTransform(); @Override boolean transferGeoCoding(Scene srcScene, Scene destScene, ProductSubsetDef subsetDef); @Override boolean canGetGeoPos(); @Override boolean canGetPixelPos(); @Override void dispose(); @Override Datum getDatum(); @Override GeoPos getGeoPos(PixelPos pixelPos, GeoPos geoPos); @Override PixelPos getPixelPos(GeoPos geoPos, PixelPos pixelPos); final void getPixels(final int x1, final int y1, final int w, final int h,
                                final float[] latPixels, final float[] lonPixels); @Override boolean isCrossingMeridianAt180(); @Override String toString();  }
@Test public void testCrossing180() throws Exception { final Rectangle imageBounds = new Rectangle(10, 20); srcGeoCoding = createCrsGeoCodingCross180(imageBounds); assertTrue(srcGeoCoding.isCrossingMeridianAt180()); final Band srcNode = new Band("srcDummy", ProductData.TYPE_INT8, 10, 20); srcNode.setGeoCoding(srcGeoCoding); srcScene = SceneFactory.createScene(srcNode); final ProductSubsetDef subsetDef = new ProductSubsetDef("subset"); subsetDef.setRegion(2, 2, 8, 8); subsetDef.setSubSampling(2, 2); boolean transfered = srcScene.transferGeoCodingTo(destScene, subsetDef); assertTrue(transfered); assertTrue(destScene.getGeoCoding().isCrossingMeridianAt180()); subsetDef.setRegion(2, 2, 2, 2); transfered = srcScene.transferGeoCodingTo(destScene, subsetDef); assertTrue(transfered); assertFalse(destScene.getGeoCoding().isCrossingMeridianAt180()); }
@Test public void testWholeWorld() throws Exception { final Rectangle imageBounds = new Rectangle(10, 20); srcGeoCoding = createCrsGeoCodingCoveringWholeWorld(imageBounds); assertFalse(srcGeoCoding.isCrossingMeridianAt180()); }