Class MinimumDiameter


  • public class MinimumDiameter
    extends java.lang.Object
    Computes the minimum diameter of a Geometry. The minimum diameter is defined to be the width of the smallest band that contains the geometry, where a band is a strip of the plane defined by two parallel lines. This can be thought of as the smallest hole that the geometry can be moved through, with a single rotation.

    The first step in the algorithm is computing the convex hull of the Geometry. If the input Geometry is known to be convex, a hint can be supplied to avoid this computation.

    This class can also be used to compute a line segment representing the minimum diameter, the supporting line segment of the minimum diameter, and a minimum rectangle enclosing the input geometry. This rectangle will have width equal to the minimum diameter, and have one side parallel to the supporting segment.

    Version:
    1.7
    See Also:
    ConvexHull
    • Constructor Detail

      • MinimumDiameter

        public MinimumDiameter​(Geometry inputGeom)
        Compute a minimum diameter for a given Geometry.
        Parameters:
        inputGeom - a Geometry
      • MinimumDiameter

        public MinimumDiameter​(Geometry inputGeom,
                               boolean isConvex)
        Compute a minimum diameter for a giver Geometry, with a hint if the Geometry is convex (e.g. a convex Polygon or LinearRing, or a two-point LineString, or a Point).
        Parameters:
        inputGeom - a Geometry which is convex
        isConvex - true if the input geometry is convex
    • Method Detail

      • getMinimumRectangle

        public static Geometry getMinimumRectangle​(Geometry geom)
        Gets the minimum rectangle enclosing a geometry.
        Parameters:
        geom - the geometry
        Returns:
        the minimum rectangle enclosing the geometry
      • getMinimumDiameter

        public static Geometry getMinimumDiameter​(Geometry geom)
        Gets the length of the minimum diameter enclosing a geometry
        Parameters:
        geom - the geometry
        Returns:
        the length of the minimum diameter of the geometry
      • getLength

        public double getLength()
        Gets the length of the minimum diameter of the input Geometry
        Returns:
        the length of the minimum diameter
      • getWidthCoordinate

        public Coordinate getWidthCoordinate()
        Gets the Coordinate forming one end of the minimum diameter
        Returns:
        a coordinate forming one end of the minimum diameter
      • getSupportingSegment

        public LineString getSupportingSegment()
        Gets the segment forming the base of the minimum diameter
        Returns:
        the segment forming the base of the minimum diameter
      • getMinimumRectangle

        public Geometry getMinimumRectangle()
        Gets the minimum rectangular Polygon which encloses the input geometry. The rectangle has width equal to the minimum diameter, and a longer length. If the convex hull of the input is degenerate (a line or point) a LineString or Point is returned.

        The minimum rectangle can be used as an extremely generalized representation for the given geometry.

        Returns:
        the minimum rectangle enclosing the input (or a line or point if degenerate)