예제 #1
0
  /**
   * 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);
  }
예제 #2
0
  @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));
  }
예제 #3
0
  @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));
  }
예제 #4
0
  @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);
  }
예제 #5
0
  @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);
  }
예제 #6
0
  @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);
  }
예제 #7
0
  @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);
  }
예제 #8
0
  @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));
    }
  }
예제 #9
0
  @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));
    }
  }