private LineString readCompoundCurveText() throws IOException, ParseException { List<LineString> lineStrings = getLineStrings(); return geometryFactory.createCurvedGeometry(lineStrings); }
private MultiLineString readMultiCurveText() throws IOException, ParseException { List<LineString> lineStrings = getLineStrings(); return geometryFactory.createMultiCurve(lineStrings); }
private LineString readCompoundCurveText() throws IOException, ParseException { List<LineString> lineStrings = getLineStrings(); if( lineStrings.isEmpty() ){ // return an empty lineString? return geometryFactory.createLineString(new Coordinate[] {}); } if( lineStrings.size() == 1 ){ return lineStrings.get(0); } // we must gather these all into one - removing duplicates! List<Coordinate> coords = new ArrayList<Coordinate>(); for( LineString segment : lineStrings ){ List<Coordinate> segmentCoordinates = Arrays.asList(segment.getCoordinates()); coords.addAll( segmentCoordinates.subList(0, segmentCoordinates.size()-1 )); } LineString last = lineStrings.get( lineStrings.size()-1); Coordinate end = last.getCoordinateN( last.getNumPoints()-1); coords.add( end ); return geometryFactory.createLineString( coords.toArray( new Coordinate[ coords.size()])); }