/** * Added this test after a bug was reported in JTS.transform for converting between WGS84 (2D) and * DefaultGeocentric.CARTESIAN (3D). */ @Test public void transformCoordinate2DCRSTo3D() throws Exception { CoordinateReferenceSystem srcCRS = DefaultGeographicCRS.WGS84; CoordinateReferenceSystem targetCRS = DefaultGeocentricCRS.CARTESIAN; MathTransform transform = CRS.findMathTransform(srcCRS, targetCRS); Coordinate srcCoord = new Coordinate(0, 0); Coordinate dest0 = JTS.transform(srcCoord, null, transform); srcCoord.x = 180; Coordinate dest180 = JTS.transform(srcCoord, null, transform); // Only a perfunctory check on the return values - mostly we // just wanted to make sure there was no exception assertEquals(dest0.x, -dest180.x, TOL); assertEquals(dest0.y, dest180.y, TOL); assertEquals(dest0.z, dest180.z, TOL); }
@Test public void toEnvelope() { Coordinate[] coords = getPolyCoords(); GeometryFactory gf = new GeometryFactory(); Geometry geom = gf.createPolygon(gf.createLinearRing(coords), null); ReferencedEnvelope refEnv = JTS.toEnvelope(geom); assertTrue(geom.getEnvelopeInternal().equals(refEnv)); }
@Test public void getEnvelope2D() { ReferencedEnvelope refEnv = new ReferencedEnvelope(-10, 10, -5, 5, DefaultGeographicCRS.WGS84); Envelope2D env2D = JTS.getEnvelope2D(refEnv, refEnv.getCoordinateReferenceSystem()); CRS.equalsIgnoreMetadata( refEnv.getCoordinateReferenceSystem(), env2D.getCoordinateReferenceSystem()); assertTrue(env2D.boundsEquals(refEnv, 0, 1, TOL)); }
@Test public void toDirectPosition() { Coordinate c = new Coordinate(40, 40); DirectPosition wrapper = JTS.toDirectPosition(c, DefaultGeographicCRS.WGS84); GeneralDirectPosition expected = new GeneralDirectPosition(DefaultGeographicCRS.WGS84); expected.setOrdinate(0, 40); expected.setOrdinate(1, 40); assertEquals(expected, wrapper); }
@Test public void toGeometry_BoundingBox() { BoundingBox bbox = new ReferencedEnvelope(-10, 10, -5, 5, null); Geometry geom = JTS.toGeometry(bbox); assertTrue(geom instanceof com.vividsolutions.jts.geom.Polygon); Envelope geomEnv = geom.getEnvelopeInternal(); assertEquals(-10.0, geomEnv.getMinX(), TOL); assertEquals(10.0, geomEnv.getMaxX(), TOL); assertEquals(-5.0, geomEnv.getMinY(), TOL); assertEquals(5.0, geomEnv.getMaxY(), TOL); }
@Test public void toGeometry_ReferencedEnvelope() { ReferencedEnvelope refEnv = new ReferencedEnvelope(-10, 10, -5, 5, DefaultGeographicCRS.WGS84); Geometry geom = JTS.toGeometry(refEnv); assertTrue(geom instanceof com.vividsolutions.jts.geom.Polygon); Envelope geomEnv = geom.getEnvelopeInternal(); assertEquals(-10.0, geomEnv.getMinX(), TOL); assertEquals(10.0, geomEnv.getMaxX(), TOL); assertEquals(-5.0, geomEnv.getMinY(), TOL); assertEquals(5.0, geomEnv.getMaxY(), TOL); }
@Test public void toGeometry_Envelope() { Envelope refEnv = new Envelope(-10, 10, -5, 5); Geometry geom = JTS.toGeometry(refEnv); assertTrue(geom instanceof com.vividsolutions.jts.geom.Polygon); Envelope geomEnv = geom.getEnvelopeInternal(); assertEquals(-10.0, geomEnv.getMinX(), TOL); assertEquals(10.0, geomEnv.getMaxX(), TOL); assertEquals(-5.0, geomEnv.getMinY(), TOL); assertEquals(5.0, geomEnv.getMaxY(), TOL); }
@Test public void toGeometry_Shape_Poly() { Shape shape = new Polygon(XPOINTS, YPOINTS, NPOINTS); Geometry geom = JTS.toGeometry(shape); assertTrue(geom instanceof LinearRing); Coordinate[] coords = geom.getCoordinates(); assertEquals(NPOINTS + 1, coords.length); CoordList list = new CoordList(coords); Coordinate c = new Coordinate(); for (int i = 0; i < NPOINTS; i++) { c.x = XPOINTS[i]; c.y = YPOINTS[i]; assertTrue(list.contains(c)); } }
@Test public void toGeometry_Shape_Line() { GeneralPath path = new GeneralPath(); path.moveTo(XPOINTS[0], YPOINTS[0]); for (int i = 1; i < NPOINTS; i++) { path.lineTo(XPOINTS[i], YPOINTS[i]); } Geometry geom = JTS.toGeometry(path); assertTrue(geom instanceof LineString); Coordinate[] coords = geom.getCoordinates(); assertEquals(NPOINTS, coords.length); CoordList list = new CoordList(coords); Coordinate c = new Coordinate(); for (int i = 0; i < NPOINTS; i++) { c.x = XPOINTS[i]; c.y = YPOINTS[i]; assertTrue(list.contains(c)); } }