Class BufferOp
- java.lang.Object
-
- org.locationtech.jts.operation.buffer.BufferOp
-
public class BufferOp extends java.lang.Object
Computes the buffer of a geometry, for both positive and negative buffer distances.In GIS, the positive (or negative) buffer of a geometry is defined as the Minkowski sum (or difference) of the geometry with a circle of radius equal to the absolute value of the buffer distance. In the CAD/CAM world buffers are known as offset curves. In morphological analysis the operation of positive and negative buffering is referred to as erosion and dilation
The buffer operation always returns a polygonal result. The negative or zero-distance buffer of lines and points is always an empty
Polygon
.Since true buffer curves may contain circular arcs, computed buffer polygons are only approximations to the true geometry. The user can control the accuracy of the approximation by specifying the number of linear segments used to approximate arcs. This is specified via
BufferParameters.setQuadrantSegments(int)
orsetQuadrantSegments(int)
.The end cap style of a linear buffer may be
specified
. The following end cap styles are supported:BufferParameters.CAP_ROUND
- the usual round end capsBufferParameters.CAP_FLAT
- end caps are truncated flat at the line endsBufferParameters.CAP_SQUARE
- end caps are squared off at the buffer distance beyond the line ends
The join style of the corners in a buffer may be
specified
. The following join styles are supported:BufferParameters.JOIN_ROUND
- the usual round joinBufferParameters.JOIN_MITRE
- corners are "sharp" (up to adistance limit
)BufferParameters.JOIN_BEVEL
- corners are beveled (clipped off).
The buffer algorithm can perform simplification on the input to increase performance. The simplification is performed a way that always increases the buffer area (so that the simplified input covers the original input). The degree of simplification can be
specified
, with adefault
used otherwise. Note that if the buffer distance is zero then so is the computed simplify tolerance, no matter what the simplify factor.- Version:
- 1.7
-
-
Field Summary
Fields Modifier and Type Field Description static int
CAP_BUTT
Deprecated.use BufferParametersstatic int
CAP_FLAT
Deprecated.use BufferParametersstatic int
CAP_ROUND
Deprecated.use BufferParametersstatic int
CAP_SQUARE
Deprecated.use BufferParameters
-
Constructor Summary
Constructors Constructor Description BufferOp(Geometry g)
Initializes a buffer computation for the given geometryBufferOp(Geometry g, BufferParameters bufParams)
Initializes a buffer computation for the given geometry with the given set of parameters
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Geometry
bufferOp(Geometry g, double distance)
Computes the buffer of a geometry for a given buffer distance.static Geometry
bufferOp(Geometry g, double distance, int quadrantSegments)
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.static Geometry
bufferOp(Geometry g, double distance, int quadrantSegments, int endCapStyle)
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.static Geometry
bufferOp(Geometry g, double distance, BufferParameters params)
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.Geometry
getResultGeometry(double distance)
Returns the buffer computed for a geometry for a given buffer distance.void
setEndCapStyle(int endCapStyle)
Specifies the end cap style of the generated buffer.void
setQuadrantSegments(int quadrantSegments)
Sets the number of segments used to approximate a angle fillet
-
-
-
Field Detail
-
CAP_ROUND
public static final int CAP_ROUND
Deprecated.use BufferParametersSpecifies a round line buffer end cap style.- See Also:
- Constant Field Values
-
CAP_BUTT
public static final int CAP_BUTT
Deprecated.use BufferParametersSpecifies a butt (or flat) line buffer end cap style.- See Also:
- Constant Field Values
-
CAP_FLAT
public static final int CAP_FLAT
Deprecated.use BufferParametersSpecifies a butt (or flat) line buffer end cap style.- See Also:
- Constant Field Values
-
CAP_SQUARE
public static final int CAP_SQUARE
Deprecated.use BufferParametersSpecifies a square line buffer end cap style.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
BufferOp
public BufferOp(Geometry g)
Initializes a buffer computation for the given geometry- Parameters:
g
- the geometry to buffer
-
BufferOp
public BufferOp(Geometry g, BufferParameters bufParams)
Initializes a buffer computation for the given geometry with the given set of parameters- Parameters:
g
- the geometry to bufferbufParams
- the buffer parameters to use
-
-
Method Detail
-
bufferOp
public static Geometry bufferOp(Geometry g, double distance)
Computes the buffer of a geometry for a given buffer distance.- Parameters:
g
- the geometry to bufferdistance
- the buffer distance- Returns:
- the buffer of the input geometry
-
bufferOp
public static Geometry bufferOp(Geometry g, double distance, BufferParameters params)
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.- Parameters:
g
- the geometry to bufferdistance
- the buffer distanceparams
- the buffer parameters to use- Returns:
- the buffer of the input geometry
-
bufferOp
public static Geometry bufferOp(Geometry g, double distance, int quadrantSegments)
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.- Parameters:
g
- the geometry to bufferdistance
- the buffer distancequadrantSegments
- the number of segments used to approximate a quarter circle- Returns:
- the buffer of the input geometry
-
bufferOp
public static Geometry bufferOp(Geometry g, double distance, int quadrantSegments, int endCapStyle)
Computes the buffer for a geometry for a given buffer distance and accuracy of approximation.- Parameters:
g
- the geometry to bufferdistance
- the buffer distancequadrantSegments
- the number of segments used to approximate a quarter circleendCapStyle
- the end cap style to use- Returns:
- the buffer of the input geometry
-
setEndCapStyle
public void setEndCapStyle(int endCapStyle)
Specifies the end cap style of the generated buffer. The styles supported areBufferParameters.CAP_ROUND
,BufferParameters.CAP_FLAT
, andBufferParameters.CAP_SQUARE
. The default is CAP_ROUND.- Parameters:
endCapStyle
- the end cap style to specify
-
setQuadrantSegments
public void setQuadrantSegments(int quadrantSegments)
Sets the number of segments used to approximate a angle fillet- Parameters:
quadrantSegments
- the number of segments in a fillet for a quadrant
-
getResultGeometry
public Geometry getResultGeometry(double distance)
Returns the buffer computed for a geometry for a given buffer distance.- Parameters:
distance
- the buffer distance- Returns:
- the buffer of the input geometry
-
-