public Geometry getResultGeometry() { // empty input produces an empty result if (inputGeom.isEmpty()) return (Geometry) inputGeom.clone(); linestringMap = new HashMap(); inputGeom.apply(new LineStringMapBuilderFilter()); lineSimplifier.simplify(linestringMap.values()); Geometry result = (new LineStringTransformer()).transform(inputGeom); return result; }
protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent) { // for linear components (including rings), simplify the linestring if (parent instanceof LineString) { TaggedLineString taggedLine = (TaggedLineString) linestringMap.get(parent); return createCoordinateSequence(taggedLine.getResultCoordinates()); } // for anything else (e.g. points) just copy the coordinates return super.transformCoordinates(coords, parent); } }
protected CoordinateSequence transformCoordinates(CoordinateSequence coords, Geometry parent) { if (coords.size() == 0) return null; // for linear components (including rings), simplify the linestring if (parent instanceof LineString) { TaggedLineString taggedLine = (TaggedLineString) linestringMap.get(parent); return createCoordinateSequence(taggedLine.getResultCoordinates()); } // for anything else (e.g. points) just copy the coordinates return super.transformCoordinates(coords, parent); } }
public Geometry getResultGeometry() { // empty input produces an empty result if (inputGeom.isEmpty()) return (Geometry) inputGeom.clone(); linestringMap = new HashMap(); inputGeom.apply(new LineStringMapBuilderFilter()); lineSimplifier.simplify(linestringMap.values()); Geometry result = (new LineStringTransformer()).transform(inputGeom); return result; }