public DirectPosition getStartPoint() { return points.getDirectPosition(0, null); }
public DirectPosition getEndPoint() { return points.getDirectPosition(points.size() - 1, null); }
public Curve createCurve(PointArray points, boolean closed) throws MismatchedReferenceSystemException, MismatchedDimensionException { if (points == null) throw new NullPointerException("Points are required to create a curve"); if (points.size() < 2) throw new IllegalArgumentException( "At least two points are required to create a curve"); // 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 /* <LineSegment> */ segmentList = new ArrayList /* <LineSegment> */(); for (int i = 0; i < points.size() - 1; i++) { int start = i; int end = i + 1; DirectPosition point1 = points.getDirectPosition(start, null); DirectPosition point2 = points.getDirectPosition(end, null); LineSegment segment = createLineSegment(point1, point2); segmentList.add(segment); } if (closed) { LineSegment first = (LineSegment) segmentList.get(0); LineSegment last = (LineSegment) segmentList.get(segmentList.size() - 1); if (!first.getStartPoint().equals(last.getEndPoint())) { LineSegment segment = createLineSegment(last.getEndPoint(), first.getStartPoint()); segmentList.add(segment); } } return getPrimitiveFactory().createCurve(segmentList); }
public static DirectPosition[] getDirectPositions(final LineString lineString) { final PointArray controlPoints = lineString.getControlPoints(); final DirectPosition[] returnable = new DirectPosition[controlPoints.size()]; for (int i = 0; i < controlPoints.size(); i++) { returnable[i] = controlPoints.getDirectPosition(i, null); } return returnable; }
public static DirectPosition[] getDirectPositions(final LineString lineString) { final PointArray controlPoints = lineString.getControlPoints(); final DirectPosition[] returnable = new DirectPosition[controlPoints.length()]; for (int i = 0; i < controlPoints.length(); i++) { returnable[i] = controlPoints.getDirectPosition(i, null); } return returnable; }
public static DirectPosition[] getDirectPositions(final LineString lineString) { final PointArray controlPoints = lineString.getControlPoints(); final DirectPosition[] returnable = new DirectPosition[controlPoints.length()]; for (int i = 0; i < controlPoints.length(); i++) { returnable[i] = controlPoints.getDirectPosition(i, null); } return returnable; }
/** * Creates a new PointArray based on another PointArray. This constructor * creates new Position objects. * * @param aPointArray */ public PointArrayImpl(PointArray aPointArray) { if (aPointArray.isEmpty()){ throw new IllegalArgumentException("Parameter PointArray is empty. Cannot create empty PointArray as we need the CRS"); } // Position data will be cloned here //this.column = new ArrayList<PositionImpl>(); //this.column = this.getFeatGeomFactory().getListFactory().getPositionList(); // int coordDim = aPointArray.getFirst().getCoordinateDimension(); // CoordinateFactoryImpl coordFactory = FeatGeomFactoryImpl // .getDefaultCoordinateFactory(coordDim); // TODO JR: Zur kenntnisnahme: // Wie in deinem Vorschlag von unserem Telefonat am 04/10 hole ich die CoordFactory ber ein DP //CoordinateFactoryImpl coordFactory = this.getFeatGeomFactory().getCoordinateFactory(); for (int i = 0; i < aPointArray.size(); i++) { Position copy = new PositionImpl( aPointArray.getDirectPosition(i, null) ); add( copy ); } crs = getPosition(0).getPosition().getCoordinateReferenceSystem(); }
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 );