Package org.geotools.geometry.iso.coordinate

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


      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));
View Full Code Here


    //GeometryFactoryImpl tCoordFactory = aGeomFactory.getGeometryFactoryImpl();
    //PrimitiveFactoryImpl tPrimFactory = aGeomFactory.getPrimitiveFactory();
   
    /* Defining Positions for LineStrings */
    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})));
   
    /* Setting up Array of these LineStrings */
    ArrayList<CurveSegment> tLineList1 = new ArrayList<CurveSegment>();
    tLineList1.add(tGeomFactory.createLineString(line1));
    tLineList1.add(tGeomFactory.createLineString(line2));
View Full Code Here

    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>();
View Full Code Here

  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);
View Full Code Here

    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));
View Full Code Here

    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();
   
    // Self-Intersecting Curve
    // CURVE(30 20, 10 50, 100 120, 100 70, 10 140)
    ArrayList<Position> line1 = new ArrayList<Position>();
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{30, 20})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{10, 50})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 120})));
    ArrayList<Position> line2 = new ArrayList<Position>();
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 120})));
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 70})));
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{10, 140})));

    /* Setting up Array of these LineStrings */
    ArrayList<CurveSegment> tLineList1 = new ArrayList<CurveSegment>();
    tLineList1.add(tCoordFactory.createLineString(line1));
    tLineList1.add(tCoordFactory.createLineString(line2));
View Full Code Here

    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) builder.getPrimitiveFactory();
   
    // Non-Self-Intersecting Curve
    // CURVE(30 20, 10 50, 100 70, 100 120, 10 140)
    ArrayList<Position> line1 = new ArrayList<Position>();
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{30, 20})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{10, 50})));
    line1.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 70})));
    ArrayList<Position> line2 = new ArrayList<Position>();
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 70})));
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{100, 120})));
    line2.add(new PositionImpl(tCoordFactory.createDirectPosition(new double[]{10, 140})));

    /* Setting up Array of these LineStrings */
    ArrayList<CurveSegment> tLineList1 = new ArrayList<CurveSegment>();
    tLineList1.add(tCoordFactory.createLineString(line1));
    tLineList1.add(tCoordFactory.createLineString(line2));
View Full Code Here

  private void _testCurve(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;
   
    ArrayList<Position> positionList = new ArrayList<Position>();
    positionList .add(p1);
    positionList.add(p2);
    positionList.add(p3);
    positionList.add(p4);
    positionList.add(p5);
    line1 = tCoordFactory.createLineString(positionList);

    /* Set parent curve for LineString */
    ArrayList<CurveSegment> tLineList = new ArrayList<CurveSegment>();
    tLineList.add(line1);

    // PrimitiveFactory.createCurve(List<CurveSegment>)
    CurveImpl curve1 = tPrimFactory.createCurve(tLineList);
    //System.out.println("\nCurve1: " + curve1);
   
    assertTrue(curve1.isCycle() == false);
   
    // Set curve for further LineString tests
    line1.setCurve(curve1);

    //System.out.println("\n*** TEST: Curve\n" + curve1);
   
    // ***** getStartPoint()
    //System.out.println("\n*** TEST: .getStartPoint()\n" + curve1.getStartPoint());
    assertTrue(curve1.getStartPoint().getOrdinate(0) == -50);
    assertTrue(curve1.getStartPoint().getOrdinate(1) == 0);
   
    // ***** getEndPoint()
    //System.out.println("\n*** TEST: .getEndPoint()\n" + curve1.getEndPoint());
    assertTrue(curve1.getEndPoint().getOrdinate(0) == 50);
    assertTrue(curve1.getEndPoint().getOrdinate(1) == 0);

    // ***** getStartParam()
    //System.out.println("\n*** TEST: .getStartParam()\n" + curve1.getStartParam());
    assertTrue(curve1.getStartParam() == 0.0);

    // ***** getEndParam()
    //System.out.println("\n*** TEST: .getEndParam()\n" + curve1.getEndParam());
    assertTrue(Math.round(line1.getEndParam()) == 144.0);

    // ***** getStartConstructiveParam()
    //System.out.println("\n*** TEST: .getStartConstructiveParam()\n" + curve1.getStartConstructiveParam());
    assertTrue(curve1.getStartConstructiveParam() == 0.0);

    // ***** getEndConstructiveParam()
    //System.out.println("\n*** TEST: .getEndConstructiveParam()\n" + curve1.getEndConstructiveParam());
    assertTrue(curve1.getEndConstructiveParam() == 1.0);

    // ***** getBoundary()
    //System.out.println("\n*** TEST: .getBoundary()\n" + curve1.getBoundary());
    CurveBoundary cb = curve1.getBoundary();
    assertTrue(cb != null);
    double[] dp = cb.getStartPoint().getDirectPosition().getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0);
    dp = cb.getEndPoint().getDirectPosition().getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 0);
   
    // ***** getEnvelope()
    //System.out.println("\n*** TEST: .getEnvelope()\n" + curve1.getEnvelope());
    assertTrue(curve1.getEnvelope() != null);
    dp = curve1.getEnvelope().getLowerCorner().getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0);
    dp = curve1.getEnvelope().getUpperCorner().getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 50);
   
    // ***** forParam(double distance) : DirectPosition
    dp = curve1.forParam(0).getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0.0);
   
    dp = curve1.forParam(curve1.length()).getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 0.0);
   
    dp = curve1.forParam(50).getCoordinate();
    ////System.out.println("forParam: " + dp[0] + "," + dp[1]);
    assertTrue(Math.round(dp[0]*1000) == -18397);
    assertTrue(Math.round(dp[1]*1000) == 37735);

    // ***** forConstructiveParam(double distance)
    dp = curve1.forConstructiveParam(0.0).getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0.0);

    dp = curve1.forConstructiveParam(1.0).getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 0.0);
   
    dp = curve1.forConstructiveParam(50 / curve1.length()).getCoordinate();
    assertTrue(Math.round(dp[0]*1000) == -18397);
    assertTrue(Math.round(dp[1]*1000) == 37735);
   
    // ***** getTangent(double distance)
    dp = curve1.getTangent(0);
    ////System.out.println("tangent: " + dp[0] + "," + dp[1]);
    assertTrue(Math.round(dp[0]*1000) == -49445);
    assertTrue(Math.round(dp[1]*1000) == 832);

    dp = curve1.getTangent(40);
    assertTrue(Math.round(dp[0]*100) == -2589);
    assertTrue(Math.round(dp[1]*100) == 3274);

    dp = curve1.getTangent(curve1.getEndParam());
    //System.out.println("tangent: " + dp[0] + "," + dp[1]);
    assertTrue(Math.round(dp[0]*100) == 5055);
    assertTrue(Math.round(dp[1]*100) == -83);
   
    // ***** getRepresentativePoint()
    dp = curve1.getRepresentativePoint().getCoordinate();
    ////System.out.print("REPRER" + dp);
    assertTrue(dp[0] == 0);
    assertTrue(dp[1] == 50);
   
   
    // ***** Curve.Merge(Curve)
   
    DirectPosition p6 = tCoordFactory.createDirectPosition(new double[]{8020});
    DirectPosition p7 = tCoordFactory.createDirectPosition(new double[]{13060});
   
    List<DirectPosition> directPositions = new ArrayList<DirectPosition>();
   
    directPositions.add(p5.getDirectPosition());
    directPositions.add(p6);
    directPositions.add(p7);
    CurveImpl curve2 = (CurveImpl) tPrimFactory.createCurveByDirectPositions(directPositions);
   
    CurveImpl curve3 = curve1.merge(curve2);
View Full Code Here

  private void _testCurve(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;
   
    ArrayList<Position> positionList = new ArrayList<Position>();
    positionList .add(p1);
    positionList.add(p2);
    positionList.add(p3);
    positionList.add(p4);
    positionList.add(p5);
    line1 = tCoordFactory.createLineString(positionList);

    /* Set parent curve for LineString */
    ArrayList<CurveSegment> tLineList = new ArrayList<CurveSegment>();
    tLineList.add(line1);

    // PrimitiveFactory.createCurve(List<CurveSegment>)
    CurveImpl curve1 = tPrimFactory.createCurve(tLineList);
    //System.out.println("\nCurve1: " + curve1);
   
    assertTrue(curve1.isCycle() == false);
   
    // Set curve for further LineString tests
    line1.setCurve(curve1);

    //System.out.println("\n*** TEST: Curve\n" + curve1);
   
    // ***** getStartPoint()
    //System.out.println("\n*** TEST: .getStartPoint()\n" + curve1.getStartPoint());
    assertTrue(curve1.getStartPoint().getOrdinate(0) == -50);
    assertTrue(curve1.getStartPoint().getOrdinate(1) == 0);
   
    // ***** getEndPoint()
    //System.out.println("\n*** TEST: .getEndPoint()\n" + curve1.getEndPoint());
    assertTrue(curve1.getEndPoint().getOrdinate(0) == 50);
    assertTrue(curve1.getEndPoint().getOrdinate(1) == 0);

    // ***** getStartParam()
    //System.out.println("\n*** TEST: .getStartParam()\n" + curve1.getStartParam());
    assertTrue(curve1.getStartParam() == 0.0);

    // ***** getEndParam()
    //System.out.println("\n*** TEST: .getEndParam()\n" + curve1.getEndParam());
    assertTrue(Math.round(line1.getEndParam()) == 144.0);

    // ***** getStartConstructiveParam()
    //System.out.println("\n*** TEST: .getStartConstructiveParam()\n" + curve1.getStartConstructiveParam());
    assertTrue(curve1.getStartConstructiveParam() == 0.0);

    // ***** getEndConstructiveParam()
    //System.out.println("\n*** TEST: .getEndConstructiveParam()\n" + curve1.getEndConstructiveParam());
    assertTrue(curve1.getEndConstructiveParam() == 1.0);

    // ***** getBoundary()
    //System.out.println("\n*** TEST: .getBoundary()\n" + curve1.getBoundary());
    CurveBoundary cb = curve1.getBoundary();
    assertTrue(cb != null);
    double[] dp = cb.getStartPoint().getDirectPosition().getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0);
    dp = cb.getEndPoint().getDirectPosition().getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 0);
   
    // ***** getEnvelope()
    //System.out.println("\n*** TEST: .getEnvelope()\n" + curve1.getEnvelope());
    assertTrue(curve1.getEnvelope() != null);
    dp = curve1.getEnvelope().getLowerCorner().getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0);
    dp = curve1.getEnvelope().getUpperCorner().getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 50);
   
    // ***** forParam(double distance) : DirectPosition
    dp = curve1.forParam(0).getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0.0);
   
    dp = curve1.forParam(curve1.length()).getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 0.0);
   
    dp = curve1.forParam(50).getCoordinate();
    ////System.out.println("forParam: " + dp[0] + "," + dp[1]);
    assertTrue(Math.round(dp[0]*1000) == -18397);
    assertTrue(Math.round(dp[1]*1000) == 37735);

    // ***** forConstructiveParam(double distance)
    dp = curve1.forConstructiveParam(0.0).getCoordinate();
    assertTrue(dp[0] == -50);
    assertTrue(dp[1] == 0.0);

    dp = curve1.forConstructiveParam(1.0).getCoordinate();
    assertTrue(dp[0] == 50);
    assertTrue(dp[1] == 0.0);
   
    dp = curve1.forConstructiveParam(50 / curve1.length()).getCoordinate();
    assertTrue(Math.round(dp[0]*1000) == -18397);
    assertTrue(Math.round(dp[1]*1000) == 37735);
   
    // ***** getTangent(double distance)
    dp = curve1.getTangent(0);
    ////System.out.println("tangent: " + dp[0] + "," + dp[1]);
    assertTrue(Math.round(dp[0]*1000) == -49445);
    assertTrue(Math.round(dp[1]*1000) == 832);

    dp = curve1.getTangent(40);
    assertTrue(Math.round(dp[0]*100) == -2589);
    assertTrue(Math.round(dp[1]*100) == 3274);

    dp = curve1.getTangent(curve1.getEndParam());
    //System.out.println("tangent: " + dp[0] + "," + dp[1]);
    assertTrue(Math.round(dp[0]*100) == 5055);
    assertTrue(Math.round(dp[1]*100) == -83);
   
    // ***** getRepresentativePoint()
    dp = curve1.getRepresentativePoint().getCoordinate();
    ////System.out.print("REPRER" + dp);
    assertTrue(dp[0] == 0);
    assertTrue(dp[1] == 50);
   
   
    // ***** Curve.Merge(Curve)
   
    DirectPosition p6 = tCoordFactory.createDirectPosition(new double[]{8020});
    DirectPosition p7 = tCoordFactory.createDirectPosition(new double[]{13060});
   
    List<DirectPosition> directPositions = new ArrayList<DirectPosition>();
   
    directPositions.add(p5.getDirectPosition());
    directPositions.add(p6);
    directPositions.add(p7);
    CurveImpl curve2 = (CurveImpl) tPrimFactory.createCurveByDirectPositions(directPositions);
   
    CurveImpl curve3 = curve1.merge(curve2);
View Full Code Here

    List<Position> dpList = new LinkedList<Position>();

    for (int i = 0; i < this.pts.size(); i++) {
      double[] doubleCoords = ((Coordinate) this.pts.get(i))
          .getCoordinates();
      Position dp = new PositionImpl( new DirectPositionImpl(crs, doubleCoords) );
      dpList.add(dp);
    }
   
    // Create List of CurveSegment´s (LineString´s)
    LineStringImpl lineString = new LineStringImpl(new PointArrayImpl(
View Full Code Here

TOP

Related Classes of org.geotools.geometry.iso.coordinate.PositionImpl

Copyright © 2018 www.massapicom. 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.