Class BufferOp



  • public class BufferOp
    extends 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 postive 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 can only be approximations to the true geometry. The user can control the accuracy of the curve approximation by specifying the number of linear segments used to approximate curves.

    The end cap style of a linear buffer may be specified. The following end cap styles are supported:

      CAP_ROUND - the usual round end caps
    • CAP_BUTT - end caps are truncated flat at the line ends
    • CAP_SQUARE - end caps are squared off at the buffer distance beyond the line ends

    • Field Summary

      Fields

      Modifier and Type Field and Description
      static int CAP_BUTT
      Deprecated. 
      use BufferParameters
      static int CAP_FLAT
      Deprecated. 
      use BufferParameters
      static int CAP_ROUND
      Deprecated. 
      use BufferParameters
      static int CAP_SQUARE
      Deprecated. 
      use BufferParameters
    • Constructor Summary

      Constructors

      Constructor and Description
      BufferOp(Geometry g)
      Initializes a buffer computation for the given geometry
      BufferOp(Geometry g, BufferParameters bufParams)
      Initializes a buffer computation for the given geometry with the given set of parameters
    • Method Summary

      Modifier and Type Method and 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, BufferParameters params)
      Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
      static Geometry bufferOp(Geometry g, double distance, int quadrantSegments)
      Comutes 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)
      Comutes 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 BufferParameters
        Specifies a round line buffer end cap style.
        See Also:
        Constant Field Values
      • CAP_BUTT

        public static final int CAP_BUTT
        Deprecated.  use BufferParameters
        Specifies a butt (or flat) line buffer end cap style.
        See Also:
        Constant Field Values
      • CAP_FLAT

        public static final int CAP_FLAT
        Deprecated.  use BufferParameters
        Specifies a butt (or flat) line buffer end cap style.
        See Also:
        Constant Field Values
      • CAP_SQUARE

        public static final int CAP_SQUARE
        Deprecated.  use BufferParameters
        Specifies 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 buffer
        bufParams - 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 buffer
        distance - the buffer distance
        Returns:
        the buffer of the input geometry
      • bufferOp

        public static Geometry bufferOp(Geometry g,
                                        double distance,
                                        BufferParameters params)
        Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
        Parameters:
        g - the geometry to buffer
        distance - the buffer distance
        params - the buffer parameters to use
        Returns:
        the buffer of the input geometry
      • bufferOp

        public static Geometry bufferOp(Geometry g,
                                        double distance,
                                        int quadrantSegments)
        Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
        Parameters:
        g - the geometry to buffer
        distance - the buffer distance
        quadrantSegments - 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)
        Comutes the buffer for a geometry for a given buffer distance and accuracy of approximation.
        Parameters:
        g - the geometry to buffer
        distance - the buffer distance
        quadrantSegments - the number of segments used to approximate a quarter circle
        endCapStyle - 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 are CAP_ROUND, CAP_BUTT, and 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