private static PolyLine createCenterPolyLine(TiePointGeoCoding geoCoding, final int sceneWidth, final int sceneHeight) { final double numberOfSegments = 100.0; final double stepX = sceneWidth / numberOfSegments; final PixelPos pixelPos = new PixelPos(); final GeoPos geoPos = new GeoPos(); final PolyLine polyLine = new PolyLine(); pixelPos.y = sceneHeight / 2f; for (pixelPos.x = 0; pixelPos.x < sceneWidth + 0.5; pixelPos.x += stepX) { geoCoding.getGeoPos(pixelPos, geoPos); if (pixelPos.x == 0) { polyLine.moveTo(geoPos.lon, geoPos.lat); } else { polyLine.lineTo(geoPos.lon, geoPos.lat); } } return polyLine; }
private void testGeoPos(TestSet ts, int i) { PixelPos pp = ts.pp[i]; GeoPos gp = ts.gc.getGeoPos(pp, null); assertNotNull(gp); assertEquals(ts.getPositionName(i) + " GeoPos.lat for " + pp, ts.gp[i].lat, gp.lat, GP_ERROR); assertEquals(ts.getPositionName(i) + " GeoPos.lon for " + pp, ts.gp[i].lon, gp.lon, GP_ERROR); }
String gp = tiePointGeoCoding.getGeoPos(new PixelPos(0.5f, 0.5f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.25f, 0.25f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(0.5f, 0.5f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.5f, 0.5f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(0.25f, 0.25f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.25f, 0.25f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(0.75f, 0.75f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.75f, 0.75f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(0.25f, 0.75f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.25f, 0.75f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(0.75f, 0.25f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.75f, 0.25f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(1.5f, 1.5f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(1.5f, 1.5f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(1.25f, 1.25f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(1.25f, 1.25f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(1.75f, 1.75f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(1.75f, 1.75f), null).toString()); gp = tiePointGeoCoding.getGeoPos(new PixelPos(1.25f, 1.75f), null).toString(); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(1.25f, 1.75f), null).toString());
private void doTestGetGeoPos() throws IOException { Product product = createProduct(); TiePointGeoCoding tiePointGeoCoding = (TiePointGeoCoding) product.getGeoCoding(); GeoCoding pixelGeoCoding = GeoCodingFactory.createPixelGeoCoding(product.getBand("latBand"), product.getBand("lonBand"), null, 5, ProgressMonitor.NULL); product.setGeoCoding(pixelGeoCoding); String gp; gp = new GeoPos(tiePointGeoCoding.getLatGrid().getTiePoints()[0], tiePointGeoCoding.getLonGrid().getTiePoints()[0]).toString(); assertEquals(gp, tiePointGeoCoding.getGeoPos(new PixelPos(0.5f, 0.5f), null).toString()); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.5f, 0.5f), null).toString()); gp = new GeoPos(tiePointGeoCoding.getLatGrid().getTiePoints()[GW - 1], tiePointGeoCoding.getLonGrid().getTiePoints()[GW - 1]).toString(); assertEquals(gp, tiePointGeoCoding.getGeoPos(new PixelPos(PW - 0.5f, 0.5f), null).toString()); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(PW - 0.5f, 0.5f), null).toString()); gp = new GeoPos(tiePointGeoCoding.getLatGrid().getTiePoints()[GW * (GH - 1)], tiePointGeoCoding.getLonGrid().getTiePoints()[GW * (GH - 1)]).toString(); assertEquals(gp, tiePointGeoCoding.getGeoPos(new PixelPos(0.5f, PH - 0.5f), null).toString()); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(0.5f, PH - 0.5f), null).toString()); gp = new GeoPos(tiePointGeoCoding.getLatGrid().getTiePoints()[GW * GH - 1], tiePointGeoCoding.getLonGrid().getTiePoints()[GW * GH - 1]).toString(); assertEquals(gp, tiePointGeoCoding.getGeoPos(new PixelPos(PW - 0.5f, PH - 0.5f), null).toString()); assertEquals(gp, pixelGeoCoding.getGeoPos(new PixelPos(PW - 0.5f, PH - 0.5f), null).toString()); }