Package org.opengis.geometry

Examples of org.opengis.geometry.PositionFactory


  private void _testCoordinateObjects(PicoContainer c) {
   
    GeometryFactoryImpl cf = (GeometryFactoryImpl) c.getComponentInstanceOfType(GeometryFactory.class);
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) c.getComponentInstanceOfType( PrimitiveFactoryImpl.class );
    PositionFactory positionFactory = (PositionFactory ) c.getComponentInstanceOfType( PositionFactory.class );
   
    // public DirectPositionImpl createDirectPosition();
    DirectPosition dp1 = cf.createDirectPosition();
    assertTrue(Double.compare(dp1.getOrdinate(0), Double.NaN) == 0);
    assertTrue(Double.compare(dp1.getOrdinate(1), Double.NaN) == 0);
    assertTrue(Double.compare(dp1.getOrdinate(2), Double.NaN) == 0);
   
    // public DirectPositionImpl createDirectPosition(double[] coord);
    double[] da = new double[3];
    da[0] = 10.0;
    da[1] = -115000.0;
    da[2] = 0.0000000125;
    DirectPosition dp2 = cf.createDirectPosition(da);
    assertTrue(dp2.getOrdinate(0) == 10.0);
    assertTrue(dp2.getOrdinate(1) == -115000.0);
    assertTrue(dp2.getOrdinate(2) == 0.0000000125);

    // public Envelope createEnvelope(
    //      DirectPosition lowerCorner,
    //      DirectPosition upperCorner)
    Envelope env1 = cf.createEnvelope(dp1, dp2);
    DirectPosition lc = env1.getLowerCorner();
    assertTrue(Double.compare(lc.getOrdinate(0), Double.NaN) == 0);
    assertTrue(Double.compare(lc.getOrdinate(1), Double.NaN) == 0);
    assertTrue(Double.compare(lc.getOrdinate(2), Double.NaN) == 0);
    DirectPosition uc = env1.getUpperCorner();
    assertTrue(uc.getOrdinate(0) == 10.0);
    assertTrue(uc.getOrdinate(1) == -115000.0);
    assertTrue(uc.getOrdinate(2) == 0.0000000125);
    env1 = cf.createEnvelope(dp2, dp1);
    lc = env1.getLowerCorner();
    assertTrue(lc.getOrdinate(0) == 10.0);
    assertTrue(lc.getOrdinate(1) == -115000.0);
    assertTrue(lc.getOrdinate(2) == 0.0000000125);
    uc = env1.getUpperCorner();
    assertTrue(Double.compare(uc.getOrdinate(0), Double.NaN) == 0);
    assertTrue(Double.compare(uc.getOrdinate(1), Double.NaN) == 0);
    assertTrue(Double.compare(uc.getOrdinate(2), Double.NaN) == 0);
   
    // public Position createPosition(DirectPosition dp);
    Position pos1 = cf.createPosition(dp2);
    assertTrue(pos1.getDirectPosition().getOrdinate(0) == 10.0);
    assertTrue(pos1.getDirectPosition().getOrdinate(1) == -115000.0);
    assertTrue(pos1.getDirectPosition().getOrdinate(2) == 0.0000000125);

    // public LineSegment createLineSegment(Position startPoint, Position endPoint);
    Position pos2 = cf.createPosition(dp1);
    LineSegment seg1 = cf.createLineSegment(pos1, pos2);
    assertTrue(Double.compare(seg1.getEndPoint().getOrdinate(0), Double.NaN) == 0.0);
    assertTrue(Double.compare(seg1.getEndPoint().getOrdinate(1), Double.NaN) == 0.0);
    assertTrue(Double.compare(seg1.getEndPoint().getOrdinate(2), Double.NaN) == 0.0);
    assertTrue(seg1.getStartPoint().getOrdinate(0) == 10.0);
    assertTrue(seg1.getStartPoint().getOrdinate(1) == -115000.0);
    assertTrue(seg1.getStartPoint().getOrdinate(2) == 0.0000000125);
   
    // test creating multiprimitive (only creates an empty obj right now)
    MultiPrimitive mp = cf.createMultiPrimitive();
    assertNotNull(mp);
    assertEquals(mp.getCoordinateReferenceSystem(), cf.getCoordinateReferenceSystem());
   
    // test creating polygon
    List<DirectPosition> directPositionList = new ArrayList<DirectPosition>();
    directPositionList.add(positionFactory.createDirectPosition(new double[] {20, 10, 0.0}));
    directPositionList.add(positionFactory.createDirectPosition(new double[] {40, 10, 0.0}));
    directPositionList.add(positionFactory.createDirectPosition(new double[] {50, 40, 0.0}));
    directPositionList.add(positionFactory.createDirectPosition(new double[] {30, 50, 0.0}));
    directPositionList.add(positionFactory.createDirectPosition(new double[] {10, 30, 0.0}));
    directPositionList.add(positionFactory.createDirectPosition(new double[] {20, 10, 0.0}));

    Ring exteriorRing = tPrimFactory.createRingByDirectPositions(directPositionList);
    List<Ring> interiors = new ArrayList<Ring>();

    SurfaceBoundary boundary = new SurfaceBoundaryImpl(cf.getCoordinateReferenceSystem(), exteriorRing, interiors);
View Full Code Here


    CoordinateReferenceSystem crs = DefaultGeographicCRS.WGS84;
    PicoContainer container = container( crs ); // normal 2D
   
    GeometryFactoryImpl tGeomFactory = (GeometryFactoryImpl) container.getComponentInstanceOfType(GeometryFactory.class);
    PrimitiveFactoryImpl tPrimFactory = (PrimitiveFactoryImpl) container.getComponentInstanceOfType( PrimitiveFactoryImpl.class );
    PositionFactory positionFactory = (PositionFactory ) container.getComponentInstanceOfType( PositionFactory.class );
   
    //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

        builder = new GeometryBuilder(DefaultGeographicCRS.WGS84);               
    }
    /** 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
View Full Code Here

        ObjectInputStream ois = new ObjectInputStream(in);
        return (T) ois.readObject();
    }
   
    private Surface createSurfaceFast(double[] array ) {
        PositionFactory postitionFactory = builder.getPositionFactory();
        PrimitiveFactory primitiveFactory = builder.getPrimitiveFactory();
        GeometryFactory geometryFactory = builder.getGeometryFactory();
        CoordinateReferenceSystem crs = builder.getCoordinateReferenceSystem();
       
        int length = array.length / crs.getCoordinateSystem().getDimension();
        PointArray closedPoints = postitionFactory.createPointArray( array, 0, length );
        LineString lines = geometryFactory.createLineString(closedPoints);       
        List<CurveSegment> segmentList = new ArrayList<CurveSegment>();
        segmentList.add(lines);
       
        Curve curve = primitiveFactory.createCurve(segmentList);
View Full Code Here

   
  }

  public void testPoint() throws Exception {

    PositionFactory positionFactory = new PositionFactoryImpl(crs1, new PrecisionModel());
    PrimitiveFactory primitiveFactory = new PrimitiveFactoryImpl(crs1, positionFactory);
   
    PointImpl point1 = (PointImpl) primitiveFactory.createPoint( new double[]{-123.47009555832284, 48.543261561072285} );
    PointImpl point2 = (PointImpl) point1.transform(crs2);
   
    // create expected result
    PositionFactory expectedPosF2 = new PositionFactoryImpl(crs2, new PrecisionModel());
    PrimitiveFactory expectedPrimF2 = new PrimitiveFactoryImpl(crs2, expectedPosF2);
   
    PointImpl expectedPoint2 = (PointImpl) expectedPrimF2.createPoint( new double[]{1187128.000000001, 395268.0000000004} );
   
    //System.out.println(point1);
View Full Code Here

   
  }

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

    assertEquals(curve2, expectedCurve, 0.9);
  }
 
  public void testRing() throws Exception {

    PositionFactory positionFactory = new PositionFactoryImpl(crs1, new PrecisionModel());
    PrimitiveFactory primitiveFactory = new PrimitiveFactoryImpl(crs1, positionFactory);
    GeometryFactory geometryFactory = new GeometryFactoryImpl(crs1, positionFactory);
   
    List<Position> points1 = new ArrayList<Position>();
    points1.add(primitiveFactory.createPoint( new double[]{-123.47009555832284,48.543261561072285} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.46972894676578,48.55009592117936} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.45463828850829,48.54973520267305} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.4550070827961,48.54290089070186} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.47009555832284,48.543261561072285} ));
    LineString lineString1 = geometryFactory.createLineString(points1);
        List curveSegmentList1 = Collections.singletonList(lineString1);
       
        CurveImpl curve1 = (CurveImpl) primitiveFactory.createCurve(curveSegmentList1);
       
    /* Build Ring from Curve */
    ArrayList<OrientableCurve> curveList = new ArrayList<OrientableCurve>();
    curveList.add(curve1);
   
    RingImplUnsafe ring1 = (RingImplUnsafe) primitiveFactory.createRing(curveList);
    RingImplUnsafe ring2 = (RingImplUnsafe) ring1.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} ));
View Full Code Here

        assertTrue( "object equals", surface.equals( (Object) surface2 ));
        assertTrue( "geometry equals", surface.equals( surface2 ));
  }
 
  public void testSurface() throws Exception {
    PositionFactory positionFactory = new PositionFactoryImpl(crs1, new PrecisionModel());
    PrimitiveFactory primitiveFactory = new PrimitiveFactoryImpl(crs1, positionFactory);
    GeometryFactory geometryFactory = new GeometryFactoryImpl(crs1, positionFactory);
   
    List<Position> points1 = new ArrayList<Position>();
    points1.add(primitiveFactory.createPoint( new double[]{-123.47009555832284,48.543261561072285} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.46972894676578,48.55009592117936} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.45463828850829,48.54973520267305} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.4550070827961,48.54290089070186} ));
    points1.add(primitiveFactory.createPoint( new double[]{-123.47009555832284,48.543261561072285} ));
    LineString lineString1 = geometryFactory.createLineString(points1);
        List curveSegmentList1 = Collections.singletonList(lineString1);
       
        CurveImpl curve1 = (CurveImpl) primitiveFactory.createCurve(curveSegmentList1);
       
    /* Build Ring from Curve */
    ArrayList<OrientableCurve> curveList = new ArrayList<OrientableCurve>();
    curveList.add(curve1);
   
    // Build Ring then SurfaceBoundary then Surface
    RingImpl exteriors = (RingImpl) primitiveFactory.createRing(curveList);
    List<Ring> interiors = new ArrayList<Ring>();
    SurfaceBoundary sboundary = primitiveFactory.createSurfaceBoundary(exteriors, interiors);
    Surface surface1 = primitiveFactory.createSurface(sboundary);
    Surface surface2 = (SurfaceImpl) surface1.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} ));
View Full Code Here

  public void testProcessBoundsToInitialSegment(){
   
    CoordinateReferenceSystem crs = DefaultGeographicCRS.WGS84;
    PicoContainer container = container( crs ); // normal 2D
    PrimitiveFactoryImpl factory = (PrimitiveFactoryImpl) container.getComponentInstanceOfType( PrimitiveFactoryImpl.class );
    PositionFactory positionFactory = (PositionFactory ) container.getComponentInstanceOfType( PositionFactory.class );
   
    DirectPosition positionA = positionFactory.createDirectPosition(new double[]{10, 10});
    DirectPosition positionB = positionFactory.createDirectPosition(new double[]{70, 30});
    Envelope bounds = new EnvelopeImpl( positionA, positionB );
   
    LineSegmentImpl expected = new LineSegmentImpl( crs, new double[]{10,Double.NaN}, new double[]{70,Double.NaN}, 0.0 );   
   
    LineSegment actual =  factory.processBoundsToSegment( bounds );
View Full Code Here

  public void testProcessBoundsToRing(){
   
    CoordinateReferenceSystem crs = DefaultGeographicCRS.WGS84;
    PicoContainer container = container( crs ); // normal 2D
    PrimitiveFactoryImpl factory = (PrimitiveFactoryImpl) container.getComponentInstanceOfType( PrimitiveFactoryImpl.class );
    PositionFactory positionFactory = (PositionFactory ) container.getComponentInstanceOfType( PositionFactory.class );
   
    DirectPosition positionA = positionFactory.createDirectPosition(new double[]{10, 10});
    DirectPosition positionB = positionFactory.createDirectPosition(new double[]{70, 30});
    Envelope bounds = new EnvelopeImpl( positionA, positionB );
   
    LineSegmentImpl segment = new LineSegmentImpl( crs, new double[]{10,Double.NaN}, new double[]{70,Double.NaN}, 0.0 );
   
    // create expected ring
View Full Code Here

TOP

Related Classes of org.opengis.geometry.PositionFactory

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.