public static Coordinate[] simplify(Coordinate[] pts, double distanceTolerance) { VWLineSimplifier simp = new VWLineSimplifier(pts, distanceTolerance); return simp.simplify(); }
public Coordinate[] simplify() { VWLineSimplifier.VWVertex vwLine = VWVertex.buildLine(pts); double minArea = tolerance; do { minArea = simplifyVertex(vwLine); } while (minArea < tolerance); Coordinate[] simp = vwLine.getCoordinates(); // ensure computed value is a valid line if (simp.length < 2) { return new Coordinate[] { simp[0], new Coordinate(simp[0]) }; } return simp; }
protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent) { Coordinate[] inputPts = coords.toCoordinateArray(); Coordinate[] newPts = null; if (inputPts.length == 0) { newPts = new Coordinate[0]; } else { newPts = VWLineSimplifier.simplify(inputPts, distanceTolerance); } return factory.getCoordinateSequenceFactory().create(newPts); }