Examples of GeometryFactoryImpl


Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

    /** We need to create a large surface with 7000 points */
    public void testLargeSurfaceFactory(){
        DefaultGeographicCRS crs = DefaultGeographicCRS.WGS84;
        PositionFactory postitionFactory = new PositionFactoryImpl( crs );
        PrimitiveFactory primitiveFactory = new PrimitiveFactoryImpl( crs, postitionFactory );
        GeometryFactory geometryFactory = new GeometryFactoryImpl( crs, postitionFactory );
       
        int NUMBER = 100000;
         double delta = 360.0 / (double) NUMBER;
         PointArray points = postitionFactory.createPointArray();
         for( double angle = 0.0; angle < 360.0; angle += delta ){
             double ordinates[] = new double[]{
                     Math.sin( Math.toRadians(angle) ),
                     Math.cos( Math.toRadians(angle) )
             };
             DirectPosition point = postitionFactory.createDirectPosition( ordinates );
             points.add( point );
         }
         List<OrientableCurve> curves = new ArrayList<OrientableCurve>();       
         // A curve will be created
         // - The curve will be set as parent curves for the Curve segments
         // - Start and end params for the CurveSegments will be set
         List<CurveSegment> segmentList = new ArrayList<CurveSegment>();
         for( int i=0; i<points.size();i++){
             int start = i;
             int end = (i+1)%points.size();
             DirectPosition point1 = points.getDirectPosition( start, null );
             DirectPosition point2 = points.getDirectPosition( end, null );
             LineSegment segment = geometryFactory.createLineSegment( point1, point2 );
             segmentList.add( segment );
         }
         Curve curve = primitiveFactory.createCurve( segmentList );
         curves.add( curve);        
         Ring ring = primitiveFactory.createRing( curves );
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

         SurfaceBoundary boundary = builder.createSurfaceBoundary(ring );
         Surface surface = builder.createSurface(boundary);        
    }
   
  private List<Triangle> createTestTriangle1(GeometryBuilder builder) {   
    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();

    ArrayList<double[][]> tDoubleList = new ArrayList<double[][]>();
    tDoubleList.add(new double[][]{{0,0},{100,100},{0, 100}});
    tDoubleList.add(new double[][]{{0,100},{100,100},{50,200}});
    tDoubleList.add(new double[][]{{50,200},{100,100},{150,200}});
    ArrayList<Triangle> triangleList = tCoordFactory.createTriangles(tDoubleList);
     
    for (int i=0; i < triangleList.size(); i++) {
      Triangle triangle1 = triangleList.get(i);
      //System.out.println(triangle1);
    }
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

    this.testSurfaces((SurfaceImpl) surface1);
  }

  public Surface _testSurface2(GeometryBuilder builder) {
   
    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();

    List<DirectPosition> directPositionList = new ArrayList<DirectPosition>();
    directPositionList.add(tCoordFactory.createDirectPosition(new double[] {20, 10}));
    directPositionList.add(tCoordFactory.createDirectPosition(new double[] {40, 10}));
    directPositionList.add(tCoordFactory.createDirectPosition(new double[] {50, 40}));
    directPositionList.add(tCoordFactory.createDirectPosition(new double[] {30, 50}));
    directPositionList.add(tCoordFactory.createDirectPosition(new double[] {10, 30}));
    directPositionList.add(tCoordFactory.createDirectPosition(new double[] {20, 10}));

    Ring exteriorRing = (Ring) tPrimFactory.createRingByDirectPositions(directPositionList);
    List<Ring> interiors = new ArrayList<Ring>();
   
    SurfaceBoundaryImpl surfaceBoundary1 = tPrimFactory.createSurfaceBoundary(exteriorRing, interiors );
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

   
 

  private void _testEnvelope1(GeometryBuilder builder) {
   
    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();

   
    // CoordinateFactory.createDirectPosition(double[])
    DirectPosition dp1 = tCoordFactory.createDirectPosition(new double[] {0, 0});
    DirectPosition dp2 = tCoordFactory.createDirectPosition(new double[] {100, 100});

    DirectPosition dp0 = tCoordFactory.createDirectPosition(new double[] {100, 100});
   
    // DirectPosition.equals(DirectPosition)
    assertTrue(dp2.equals(dp0));

    // Envelope.getDimension()
    assertTrue(dp2.getDimension() == 2);
    //System.outprintln("Dimension of dp1: " + dp2.getDimension());
   
    EnvelopeImpl env1 = new EnvelopeImpl(dp1, dp2);
   
    // Envelope.getLowerCorner() + Envelope.equals(DP, tol)
    assertTrue(env1.getLowerCorner().equals(dp1));
    //System.outprintln(env1.getLowerCorner());
   
    // Envelope.getUpperCorner() + Envelope.equals(DP, tol)
    assertTrue(env1.getUpperCorner().equals(dp2));
    //System.outprintln(env1.getUpperCorner());
    //System.outprintln(env1);
   
    EnvelopeImpl env2 = new EnvelopeImpl(env1);
    //System.outprintln(env2);
   
    // Envelope.equals(Envelope)
    assertTrue(env1.equals(env2));
   
   
    DirectPosition dp3 = tCoordFactory.createDirectPosition(new double[] {0,0});
    DirectPosition dp4 = tCoordFactory.createDirectPosition(new double[] {100,50});
    DirectPosition dp5 = tCoordFactory.createDirectPosition(new double[] {100.01,50});
    DirectPosition dp6 = tCoordFactory.createDirectPosition(new double[] {50,100});
    DirectPosition dp7 = tCoordFactory.createDirectPosition(new double[] {50,100.01});
   
    // Envelope.contains(DirectPosition)
    //System.outprintln("Contains Method for " + env1);
    assertTrue(env1.contains(dp3) == true);
    //System.outprintln(dp3 + " liegt im Envelope: " + env1.contains(dp3));
    assertTrue(env1.contains(dp4) == true);
    //System.outprintln(dp4 + " liegt im Envelope: " + env1.contains(dp4));
    assertTrue(env1.contains(dp5) == false);
    //System.outprintln(dp5 + " liegt im Envelope: " + env1.contains(dp5));
    assertTrue(env1.contains(dp6) == true);
    //System.outprintln(dp6 + " liegt im Envelope: " + env1.contains(dp6));
    assertTrue(env1.contains(dp7) == false);
    //System.outprintln(dp7 + " liegt im Envelope: " + env1.contains(dp7));

//    DirectPositionImpl dp8 = tCoordFactory.createDirectPosition(new double[] {200,200});
//   
//    EnvelopeImpl env2 = new EnvelopeImpl(dp6, dp8);
//    EnvelopeImpl env3 = new EnvelopeImpl(dp7, dp8);
//   
//    //System.outprintln(env1 + " intersects with " + env2 + " : " + env1.intersects(env2));
//    //System.outprintln(env1 + " intersects with " + env3 + " : " + env1.intersects(env3));
   
    //System.outprintln("TEST EXPAND");
    env1 = tCoordFactory.createEnvelope(dp1.getCoordinate());
    //System.outprintln(env1);
    env1.expand(dp2.getCoordinate());
    //System.outprintln(env1);
    env1.expand(dp5.getCoordinate());
    //System.outprintln(env1);
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

  private void _testCompositeCurve(PicoContainer c) {
   
    PositionFactoryImpl positionFactory = (PositionFactoryImpl) c.getComponentInstanceOfType(PositionFactory.class);
    ComplexFactoryImpl complf = (ComplexFactoryImpl) c.getComponentInstanceOfType(ComplexFactory.class);
    PrimitiveFactoryImpl pf = (PrimitiveFactoryImpl) c.getComponentInstanceOfType(PrimitiveFactory.class);
    GeometryFactoryImpl geomFact = (GeometryFactoryImpl) c.getComponentInstanceOfType(GeometryFactory.class);
     
    // testcreateCompositeCurve()
    ArrayList<Position> line1 = new ArrayList<Position>();
    line1.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{50, 20})));
    line1.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{30, 30})));
    line1.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{20, 50})));
    line1.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{20, 70})));

    ArrayList<Position> line2 = new ArrayList<Position>();
    line2.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{20, 70})));
    line2.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{40, 80})));
    line2.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{70, 80})));

    ArrayList<Position> line3 = new ArrayList<Position>();
    line3.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{70, 80})));
    line3.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{90, 70})));
    line3.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{100, 60})));
    line3.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{100, 40})));

    ArrayList<Position> line4 = new ArrayList<Position>();
    line4.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{100, 40})));
    line4.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{80, 30})));
    line4.add(new PositionImpl(positionFactory.createDirectPosition(new double[]{50, 20})));
    ArrayList<CurveSegment> tLineList1 = new ArrayList<CurveSegment>();
    tLineList1.add(geomFact.createLineString(line1));
    tLineList1.add(geomFact.createLineString(line2));

    ArrayList<CurveSegment> tLineList2 = new ArrayList<CurveSegment>();
    tLineList2.add(geomFact.createLineString(line3));
    tLineList2.add(geomFact.createLineString(line4));
    CurveImpl curve1 = pf.createCurve(tLineList1);
    CurveImpl curve2 = pf.createCurve(tLineList2);
    ArrayList<OrientableCurve> curveList = new ArrayList<OrientableCurve>();
    curveList.add(curve1);
    curveList.add(curve2);
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

    assertSame( crs, point.getCoordinateReferenceSystem() );   
  }
 
  private void _testPoint(GeometryBuilder builder) {
   
    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();
   
    double[] coord = new double[]{10, 32000};
    Point p1 = tPrimFactory.createPoint(coord);

    // ***** getRepresentativePoint()
    double[] dp = p1.getRepresentativePoint().getCoordinate();
    assertTrue(dp[0] == 10);
    assertTrue(dp[1] == 32000);
   
    DirectPosition dp1 = tCoordFactory.createDirectPosition(coord);
   
    Point p2 = tPrimFactory.createPoint(dp1);
   
    //System.out.println("P1: " + p1);
    //System.out.println("P2: " + p2);
    assertTrue(p1.equals(p2));
   
    //System.out.println("Dimension is " + p1.getDimension(null));
    assertTrue(p1.getDimension(null) == 0);

    //System.out.println("Coordinate dimension is " + p1.getCoordinateDimension());
    assertTrue(p1.getCoordinateDimension() == 2);
   
    Complex cp1 = p1.getClosure();
    //System.out.println("Class of p1.closure() is " + cp1.getClass());
    assertTrue(cp1 instanceof CompositePoint);
    //System.out.println("p1.closure() is " + cp1);
   
    assertTrue(p1.isCycle() == true);

   
    double[] coord2 = new double[]{5, 20};
    dp1 = tCoordFactory.createDirectPosition(coord2);
    p1.setDirectPosition(dp1);
    //System.out.println("P1: " + p1);
    //System.out.println("P2: " + p2);
    assertTrue(!p1.equals(p2));
   
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

   
  }

  private void _testCurveBoundary1(GeometryBuilder builder) {

    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();
    PrimitiveFactoryImpl tPrimitiveFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();
   
    DirectPosition dp1 = tCoordFactory.createDirectPosition(new double[] {0, 0});
    DirectPosition dp2 = tCoordFactory.createDirectPosition(new double[] {100, 100});
   
    CurveBoundary curveBoundary1 = tPrimitiveFactory.createCurveBoundary(dp1, dp2);
   
    //System.out.println(curveBoundary1);

    // RepresentativePoint()
    DirectPosition dp = curveBoundary1.getRepresentativePoint();
    assertTrue(dp.getOrdinate(0) == 0);
    assertTrue(dp.getOrdinate(1) == 0);
   
    assertTrue(curveBoundary1.isCycle() == true);
   
    // Test creating a curve boundary with the same start and end point (should result in
    //  an exception).
    PointImpl point1 = new PointImpl(dp1);
    try {
      CurveBoundaryImpl b2 = new CurveBoundaryImpl(this.crs, point1, point1);
      // fail if we get here, the above should throw an exception
      fail();
    }
    catch (IllegalArgumentException expected) {
     
    }
   
    // test clone
    PointImpl point2 = new PointImpl(dp2);
    CurveBoundaryImpl b2 = new CurveBoundaryImpl(curveBoundary1.getCoordinateReferenceSystem(), point1, point2);
    try {
      CurveBoundaryImpl expected = ((CurveBoundaryImpl) curveBoundary1).clone();
      assertTrue(b2.equals(expected));
    } catch (CloneNotSupportedException e) {
      e.printStackTrace();
      fail();
    }
   
    // test toString
    String toS = b2.toString();
    assertTrue(toS != null);
    assertTrue(toS.length() > 0);
   
    // test getEnvelope
    EnvelopeImpl env = b2.getEnvelope();
    EnvelopeImpl exp_env = new EnvelopeImpl(dp1, dp2);
    assertTrue(env.equals(exp_env));
   
    // test isSimple
    assertTrue(b2.isSimple());

    // test obj equals and hashcode
    assertTrue(b2.equals((Object) curveBoundary1));
    assertTrue(b2.equals((Object) b2));
    assertFalse(b2.equals((Object) dp1));
    assertFalse(b2.equals((Object) null));
    DirectPosition dp3 = tCoordFactory.createDirectPosition(new double[] {3, 3});
    PointImpl point3 = new PointImpl(dp3);
    assertFalse(b2.equals((Object) new CurveBoundaryImpl(this.crs, point1, point3)));
   
    assertFalse(b2.hashCode() == ((CurveBoundaryImpl) curveBoundary1).hashCode());
  }
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

    assertFalse(b2.hashCode() == ((CurveBoundaryImpl) curveBoundary1).hashCode());
  }

  private void _testSurfaceBoundary1(GeometryBuilder builder) {

    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();

    /* Defining Positions for LineStrings */
    ArrayList<Position> line1 = new ArrayList<Position>();
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{50, 20})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{30, 30})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{20, 50})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{20, 70})));

    ArrayList<Position> line2 = new ArrayList<Position>();
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{20, 70})));
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{40, 80})));
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{70, 80})));

    ArrayList<Position> line3 = new ArrayList<Position>();
    line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{70, 80})));
    line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{90, 70})));
    line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 60})));
    line3.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 40})));

    ArrayList<Position> line4 = new ArrayList<Position>();
    line4.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 40})));
    line4.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{80, 30})));
    line4.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{50, 20})));
   
    /* Setting up Array of these LineStrings */
    ArrayList<CurveSegment> tLineList1 = new ArrayList<CurveSegment>();
    tLineList1.add(tCoordFactory.createLineString(line1));
    tLineList1.add(tCoordFactory.createLineString(line2));

    ArrayList<CurveSegment> tLineList2 = new ArrayList<CurveSegment>();
    tLineList2.add(tCoordFactory.createLineString(line3));
    tLineList2.add(tCoordFactory.createLineString(line4));

    /* Build Curve */
    CurveImpl curve1 = tPrimFactory.createCurve(tLineList1);
    CurveImpl curve2 = tPrimFactory.createCurve(tLineList2);

View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

  }
 
 
  private void _testLineString1(GeometryBuilder builder) {
   
    GeometryFactoryImpl tCoordFactory = (GeometryFactoryImpl) builder.getGeometryFactory();
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();
   
    PositionImpl p1 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{-500}));
    PositionImpl p2 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{-3030}));
    PositionImpl p3 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{050}));
    PositionImpl p4 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{3030}));
    PositionImpl p5 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{500}));

    LineStringImpl line1 = null;
   
    /* Testing constructor of LineString with Array with size of 0 */
   
    //System.out.println("\n***** TEST: Constructors");
    //PositionImpl arrayOfPoints[] = new PositionImpl[0];
    ArrayList<Position> positionList = new ArrayList<Position>();
    try {
      line1 = tCoordFactory.createLineString(positionList);
    } catch (IllegalArgumentException e) {
      //System.out.println("LineStringImpl - Number of Positions in array: 0 - Not accepted");
    }
    assertEquals(line1,null);

    /* Testing constructor of LineString with Array with size of 1 */

    positionList.add(p1);
    try {
      line1 = tCoordFactory.createLineString(positionList);
    } catch (IllegalArgumentException e) {
      //System.out.println("LineStringImpl - Number of Positions in array: 1 - Not accepted");
    }
    assertEquals(line1 , null);

    /* Testing constructor of LineString with Array with size of 2 */

    positionList.add(p2);
    try {
      line1 = tCoordFactory.createLineString(positionList);
      //System.out.println("LineStringImpl - Number of Positions in array: 2 - accepted");
    } catch (IllegalArgumentException e) {
      //System.out.println("LineStringImpl - Number of Positions in array: 2 - Not accepted");
    }
    assertNotNull(line1);
   
    /* Testing constructor of LineString with Array with size of 5 */

    positionList.add(p3);
    positionList.add(p4);
    positionList.add(p5);
    try {
      line1 = tCoordFactory.createLineString(positionList);
      //System.out.println("LineStringImpl - Number of Positions in array: 5 - accepted");
      //System.out.println("\n" + line1);

    } catch (IllegalArgumentException e) {
      //System.out.println("\nLineStringImpl - Number of Positions in array: 5 - Not accepted");
    }
    assertNotNull(line1);

    // ***** getEnvelope()
    //System.out.println("\n***** TEST: .envelope()");
    //System.out.println("Envelope of the LineString is " +  line1.getEnvelope());

    // ***** getStartPoint();
    //System.out.println("\n***** TEST: .startPoint()");
    //System.out.println("StartPoint: " + line1.getStartPoint());
    assertEquals(line1.getStartPoint().getOrdinate(0) , -50.0);
    assertEquals(line1.getStartPoint().getOrdinate(1) , 0.0);

    // ***** getEndPoint();
    //System.out.println("\n***** TEST: .endPoint()");
    //System.out.println("EndPoint: " + line1.getEndPoint());
    assertEquals(line1.getEndPoint().getOrdinate(0) , 50.0);
    assertEquals(line1.getEndPoint().getOrdinate(1) , 0.0);
   
    // Set curve for further LineString tests
    ArrayList<CurveSegment> tLineList = new ArrayList<CurveSegment>();
    tLineList.add(line1);
   
    CurveImpl curve1 = tPrimFactory.createCurve(tLineList);
    line1.setCurve(curve1);
   
    // ***** length()
    //System.out.println("\n***** TEST: .length()");
    //System.out.println("Length of LineString is " + line1.length());
    assertEquals(14422, Math.round(line1.length() * 100));

    // ***** getStartParam();
    //System.out.println("\n***** TEST: .startParam()");
    //System.out.println("StartParam: " + line1.getStartParam());
    assertEquals(line1.getStartParam() , 0.0);

    // ***** getEndParam();
    //System.out.println("\n***** TEST: .endParam()");
    //System.out.println("EndParam: " + line1.getEndParam());
    assertEquals(14422, Math.round(line1.getEndParam() * 100));

    // ***** getStartConstructiveParam();
    //System.out.println("\n***** TEST: .startConstrParam()");
    //System.out.println("ConstrStartParam: " + line1.getStartConstructiveParam());
    assertEquals(line1.getStartConstructiveParam() , 0.0);
   
    // ***** getEndConstructiveParam();
    //System.out.println("\n***** TEST: .endConstrParam()");
    //System.out.println("ConstrEndParam: " + line1.getEndConstructiveParam());
    assertEquals(line1.getEndConstructiveParam() , 1.0);

   
   
    // Receive LineSegments from LineString
    List<LineSegment> segments = line1.asLineSegments();
    assertEquals(segments.size() , 4);

    LineSegment seg1 = segments.get(0);
    LineSegment seg2 = segments.get(1);
    LineSegment seg3 = segments.get(2);
    LineSegment seg4 = segments.get(3);

    //System.out.println("LineSegment: " + seg1); 
    //System.out.println("LineSegment: " + seg2); 

    // ***** LineSegment.getStartParam()
    //System.out.println(seg1.getStartParam());
    assertEquals(seg1.getStartParam() , 0.0);
   
    // ***** LineSegment.getEndParam()
    //System.out.println(seg1.getEndParam());
    assertEquals( 36, Math.round(seg1.getEndParam()) );

    //System.out.println(seg2.getStartParam());
    assertEquals( 36, Math.round(seg2.getStartParam()) );
   
    //System.out.println(seg2.getEndParam());
    assertEquals( 72, Math.round(seg2.getEndParam()) );
   
    // ***** LineSegment.getStartConstructiveParam()
    // ***** LineSegment.getEndConstructiveParam()
    //System.out.println(seg1.getStartConstructiveParam());
    assertEquals(seg1.getStartConstructiveParam() , 0.0);
    //System.out.println(seg1.getEndConstructiveParam());
    assertEquals(seg1.getEndConstructiveParam() , 0.25);
    assertEquals(segments.get(1).getStartConstructiveParam() , 0.25);
    assertEquals(segments.get(1).getEndConstructiveParam() , 0.50);
    assertEquals(segments.get(2).getStartConstructiveParam() , 0.50);
    assertEquals(segments.get(2).getEndConstructiveParam() , 0.75);
    assertEquals(segments.get(3).getStartConstructiveParam() , 0.75);
    assertEquals(segments.get(3).getEndConstructiveParam() , 1.0);


    // ***** LineSegment.forParam(double)
    // Parameter for forParam() is 0.0 (startparam)
    DirectPosition resultPos = seg1.forParam(0.0);
    //System.out.println(resultPos);
    assertEquals(resultPos.getOrdinate(0) , -50.0);
    assertEquals(resultPos.getOrdinate(1) , 0.0);

    // Parameter for forParam() is endparam
    resultPos = seg1.forParam(seg1.getEndParam());
    //System.out.println(resultPos);
    assertEquals(resultPos.getOrdinate(0) , -30.0);
    assertEquals(resultPos.getOrdinate(1) , 30.0);

    // Parameter for startParam out of param range
    resultPos = null;
    try {
      resultPos = seg1.forParam(180);
    } catch(IllegalArgumentException e) {
      // Shall throw exception
    }
    //System.out.println(resultPos);
    assertEquals(resultPos , null);

    resultPos = seg1.forParam(30);
    //System.out.println(resultPos);
   
    // ***** LineSegment.getControlPoints()
    assertEquals(seg1.getControlPoints().size() , 2);
   
    // ***** LineSegment.asLineSegments()
    assertEquals(seg2.asLineSegments().size() , 1);
   
    // ***** forParam(double distance)
    double[] dp = line1.forParam(0).getCoordinate();
    assertEquals( -50.0, dp[0] );
    assertEquals( 0.0, dp[1]);
   
    dp = line1.forParam(line1.length()).getCoordinate();
    assertEquals(50.0, dp[0]);
    assertEquals(0.0, dp[1]);
   
    dp = line1.forParam(seg1.getEndParam()).getCoordinate();
    assertEquals(-30.0, dp[0]);
    assertEquals(30.0, dp[1]);

    dp = line1.forParam(50).getCoordinate();
    ////System.out.println("forParam: " + dp[0] + "," + dp[1]);
    assertEquals(Math.round(dp[0]*1000) , -18397);
    assertEquals(Math.round(dp[1]*1000) , 37735);

    // ***** forConstructiveParam(double distance)
    dp = line1.forConstructiveParam(0.0).getCoordinate();
        assertEquals(-50.0, dp[0] );
        assertEquals(0.0, dp[1]);

    dp = line1.forConstructiveParam(1.0).getCoordinate();
        assertEquals(50.0, dp[0]);
        assertEquals(0.0, dp[1]);
   
    dp = line1.forConstructiveParam(50 / line1.length()).getCoordinate();
        assertEquals(Math.round(dp[0]*1000) , -18397);
        assertEquals(Math.round(dp[1]*1000) , 37735);

    // ***** getTangent(double distance)
    dp = line1.getTangent(0);
    ////System.out.println("tangent: " + dp[0] + "," + dp[1]);
        assertEquals(Math.round(dp[0]*1000) , -49445);
        assertEquals(Math.round(dp[1]*1000) , 832);

    dp = line1.getTangent(40);
        assertEquals(Math.round(dp[0]*100) , -2589);
        assertEquals(Math.round(dp[1]*100) , 3274);

    dp = line1.getTangent(line1.getEndParam());
    //System.out.println("tangent: " + dp[0] + "," + dp[1]);
        assertEquals(Math.round(dp[0]*100) , 5055);
        assertEquals(Math.round(dp[1]*100) , -83);
   
    // ***** merge(LineString)
    PositionImpl p6 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{8040}));
    PositionImpl p7 = new PositionImpl(tCoordFactory.createDirectPosition(new double[]{13060}));
    ArrayList<Position> positionList2 = new ArrayList<Position>();
    positionList2.add(p5);
    positionList2.add(p6);
    positionList2.add(p7);
    LineStringImpl line2 = tCoordFactory.createLineString(positionList2);
   
    LineStringImpl line3 = line1.merge(line2);
    //System.out.println("Line1: " + line1);
    //System.out.println("Line2: " + line2);
    //System.out.println("MergedLine: " + line3);
View Full Code Here

Examples of org.geotools.geometry.iso.coordinate.GeometryFactoryImpl

  public void testCurve() throws Exception {

    PositionFactory positionFactory = new PositionFactoryImpl(crs1, new PrecisionModel());
    PrimitiveFactory primitiveFactory = new PrimitiveFactoryImpl(crs1, positionFactory);
    GeometryFactory geometryFactory = new GeometryFactoryImpl(crs1, positionFactory);
   
    List<Position> points = new ArrayList<Position>();
    points.add(primitiveFactory.createPoint( new double[]{-123.47009555832284,48.543261561072285} ));
    points.add(primitiveFactory.createPoint( new double[]{-123.46972894676578,48.55009592117936} ));
    points.add(primitiveFactory.createPoint( new double[]{-123.45463828850829,48.54973520267305} ));
    points.add(primitiveFactory.createPoint( new double[]{-123.4550070827961,48.54290089070186} ));
        LineString lineString = geometryFactory.createLineString(points);
        List curveSegmentList = Collections.singletonList(lineString);
       
        CurveImpl curve1 = (CurveImpl) primitiveFactory.createCurve(curveSegmentList);
        CurveImpl curve2 = (CurveImpl) curve1.transform(crs2);
       
    // create expected result
    PositionFactory expectedPosF2 = new PositionFactoryImpl(crs2, new PrecisionModel());
    PrimitiveFactory expectedPrimF2 = new PrimitiveFactoryImpl(crs2, expectedPosF2);
    GeometryFactory ExpectedGeomF2 = new GeometryFactoryImpl(crs2, expectedPosF2);
   
    List<Position> expectedPoints = new ArrayList<Position>();
    expectedPoints.add(expectedPrimF2.createPoint( new double[]{1187128.000000001, 395268.0000000004} ));
    expectedPoints.add(expectedPrimF2.createPoint( new double[]{1187127.9999999998, 396026.99999999825} ));
    expectedPoints.add(expectedPrimF2.createPoint( new double[]{1188245.0000000007, 396027.0000000039} ));
    expectedPoints.add(expectedPrimF2.createPoint( new double[]{1188245.0000000005, 395268.0000000018} ));
        LineString expectedLineString = ExpectedGeomF2.createLineString(expectedPoints);
        List expectedCurveSegmentList = Collections.singletonList(expectedLineString);
       
        CurveImpl expectedCurve = (CurveImpl) expectedPrimF2.createCurve(expectedCurveSegmentList);
   
    //System.out.println(curve1);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.