/** * Compute a single side buffer with default parameters * @param geometry * @param distance * @return */ public static Geometry singleSideBuffer(Geometry geometry, double distance){ if(geometry==null){ return null; } return computeSingleSideBuffer(geometry, distance, new BufferParameters()); }
public static Geometry bufferCurve(Geometry g, double distance) { return buildCurveSet(g, distance, new BufferParameters()); }
/** * Return an offset line at a given distance and side from an input geometry * without buffer parameters * @param geometry the geometry * @param offset the distance * @return */ public static Geometry offsetCurve(Geometry geometry, double offset) { return computeOffsetCurve(geometry, offset, new BufferParameters()); }
public static Geometry bufferWithSimplify(Geometry g, Double distance, @Metadata(title="Simplify factor") Double simplifyFactor) { double dist = 0; if (distance != null) dist = distance.doubleValue(); BufferParameters bufParams = new BufferParameters(); if (simplifyFactor != null) bufParams.setSimplifyFactor(simplifyFactor.doubleValue()); return BufferOp.bufferOp(g, dist, bufParams); }
public static Geometry bufferMitredJoin(Geometry g, double distance) { BufferParameters bufParams = new BufferParameters(); bufParams.setJoinStyle(BufferParameters.JOIN_MITRE); return BufferOp.bufferOp(g, distance, bufParams); }
public static Geometry bufferMitredJoin(Geometry g, double distance) { BufferParameters bufParams = new BufferParameters(); bufParams.setJoinStyle(BufferParameters.JOIN_MITRE); return BufferOp.bufferOp(g, distance, bufParams); }
public static Geometry singleSidedBuffer(Geometry geom, double distance) { BufferParameters bufParams = new BufferParameters(); bufParams.setSingleSided(true); return BufferOp.bufferOp(geom, distance, bufParams); }
public static Geometry logoBuffer(Geometry g, double distance) { Geometry lines = logoLines(g); BufferParameters bufParams = new BufferParameters(); bufParams.setEndCapStyle(BufferParameters.CAP_SQUARE); return BufferOp.bufferOp(lines, distance, bufParams); }
BufferParameters bufferParameters = new BufferParameters(); for (String params : buffParemeters) { String[] keyValue = params.split("=");
BufferParameters bufferParameters = new BufferParameters(); for (String params : buffParemeters) { String[] keyValue = params.split("=");
public static Geometry bufferCurveWithParams(Geometry g, Double distance, @Metadata(title="Quadrant Segs") Integer quadrantSegments, @Metadata(title="Cap style") Integer capStyle, @Metadata(title="Join style") Integer joinStyle, @Metadata(title="Mitre limit") Double mitreLimit) { double dist = 0; if (distance != null) dist = distance.doubleValue(); BufferParameters bufParams = new BufferParameters(); if (quadrantSegments != null) bufParams.setQuadrantSegments(quadrantSegments.intValue()); if (capStyle != null) bufParams.setEndCapStyle(capStyle.intValue()); if (joinStyle != null) bufParams.setJoinStyle(joinStyle.intValue()); if (mitreLimit != null) bufParams.setMitreLimit(mitreLimit.doubleValue()); return buildCurveSet(g, dist, bufParams); }
public static Geometry bufferWithParams(Geometry g, Double distance, @Metadata(title="Quadrant Segs") Integer quadrantSegments, @Metadata(title="Cap style") Integer capStyle, @Metadata(title="Join style") Integer joinStyle, @Metadata(title="Mitre limit") Double mitreLimit) { double dist = 0; if (distance != null) dist = distance.doubleValue(); BufferParameters bufParams = new BufferParameters(); if (quadrantSegments != null) bufParams.setQuadrantSegments(quadrantSegments.intValue()); if (capStyle != null) bufParams.setEndCapStyle(capStyle.intValue()); if (joinStyle != null) bufParams.setJoinStyle(joinStyle.intValue()); if (mitreLimit != null) bufParams.setMitreLimit(mitreLimit.doubleValue()); return BufferOp.bufferOp(g, dist, bufParams); }
public Shape buffer(Shape shape, Double distance, Map<String, Object> params) { Geometry geometry = toGeometry(shape); BufferParameters parameters = new BufferParameters(); if (params != null) { bindParameters(parameters, params); } BufferOp ops = new BufferOp(geometry, parameters); return toShape(ops.getResultGeometry(distance)); }
void run5() throws Exception { // polygon with two vertices very close - mitred negative buffer lies outside input String wkt = "POLYGON ((588722.7612465625 4518964.956739423, 588755.2073151038 4518948.2420851765, 588750.2892019567 4518938.490656119, 588750.2892047082 4518938.490654858, 588741.1098934844 4518920.290260831, 588722.7612465625 4518964.956739423))"; Geometry g = rdr.read(wkt); BufferParameters params = new BufferParameters(8, BufferParameters.CAP_ROUND, BufferParameters.JOIN_MITRE, 5); Geometry buf = new BufferOp(g, params).getResultGeometry(-5); System.out.println(buf); };
void run6() throws Exception { // polygon with two vertices very close - mitred negative buffer lies outside input String wkt = "POLYGON ((589081.1515112884 4518509.334764771, 589103.7370954598 4518497.015419995, 589099.8017397423 4518490.719003885, 589097.1198886324 4518486.20858194, 589090.9424687021 4518475.819013388, 589081.1515112884 4518509.334764771))"; Geometry g = rdr.read(wkt); BufferParameters params = new BufferParameters(8, BufferParameters.CAP_ROUND, BufferParameters.JOIN_MITRE, 5); Geometry buf = new BufferOp(g, params).getResultGeometry(-5); System.out.println(buf); };
void run4() throws Exception { // String wkt = "LINESTRING (1872699.676 530329.155, 1872712.232 530255.793, 1872724.601 530183.526, 1872737.157 530110.164, 1872749.713 530036.802, 1872762.082 529964.535, 1872774.638 529891.173, 1872787.194 529817.811, 1872799.563 529745.545, 1872812.119 529672.183, 1872824.675 529598.821, 1872837.044 529526.555, 1872849.6 529453.194, 1872862.156 529379.832, 1872874.524 529307.566, 1872887.08 529234.205, 1872899.636 529160.844, 1872912.005 529088.578, 1872924.561 529015.217, 1872937.117 528941.856, 1872949.486 528869.59, 1872962.042 528796.23)"; // String wkt = "LINESTRING(1872762.082 529964.535, 1872774.638 529891.173, 1872787.194 529817.811)"; String wkt = "LINESTRING (1872612.157 530840.503, 1872624.713 530767.14, 1872637.269 530693.777)"; Geometry g = rdr.read(wkt); BufferParameters params = new BufferParameters(10, BufferParameters.CAP_SQUARE, BufferParameters.JOIN_MITRE, 10); Geometry buf = new BufferOp(g, params).getResultGeometry(200); System.out.println(buf); };
public static Geometry offsetCurve(Geometry geom, double distance) { BufferParameters bufParams = new BufferParameters(); OffsetCurveBuilder ocb = new OffsetCurveBuilder( geom.getFactory().getPrecisionModel(), bufParams ); Coordinate[] pts = ocb.getOffsetCurve(geom.getCoordinates(), distance); Geometry curve = geom.getFactory().createLineString(pts); return curve; }
public static Geometry singleSidedBufferCurve(Geometry geom, double distance) { BufferParameters bufParam = new BufferParameters(); bufParam.setSingleSided(true); OffsetCurveBuilder ocb = new OffsetCurveBuilder( geom.getFactory().getPrecisionModel(), bufParam ); Coordinate[] pts = ocb.getLineCurve(geom.getCoordinates(), distance); Geometry curve = geom.getFactory().createLineString(pts); return curve; }
BufferParameters bp = new BufferParameters(); bp.setEndCapStyle(BufferParameters.CAP_SQUARE); bp.setJoinStyle(BufferParameters.JOIN_MITRE);
public static Geometry bufferOffsetCurve(Geometry g, double distance) { OffsetCurveBuilder ocb = new OffsetCurveBuilder( g.getFactory().getPrecisionModel(), new BufferParameters()); Coordinate[] pts = g.getCoordinates(); Coordinate[] curvePts = null; if (g instanceof Polygonal) { curvePts = ocb.getRingCurve(pts, 1, distance); } else { curvePts = ocb.getLineCurve(pts, distance); } Geometry curve = g.getFactory().createLineString(curvePts); return curve; }