Class MinimumDiameter

Hierarchy: Object , MinimumDiameter
public class MinimumDiameter
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.

See also:
ConvexHull

Other

  • version: 1.7
public MinimumDiameter(Geometry inputGeom)
Compute a minimum diameter for a given Geometry.
Parameters:
inputGeom - inputGeom a Geometry
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 - inputGeom a Geometry which is convex
isConvex - isConvex true if the input geometry is convex
public static Geometry getMinimumRectangle(Geometry geom)
Gets the minimum rectangle enclosing a geometry.
Parameters:
geom - geom the geometry
Returns:
the minimum rectangle enclosing the geometry
public static Geometry getMinimumDiameter(Geometry geom)
Gets the length of the minimum diameter enclosing a geometry
Parameters:
geom - geom the geometry
Returns:
the length of the minimum diameter of the geometry
public double getLength()
Gets the length of the minimum diameter of the input Geometry
Returns:
the length of the minimum diameter
public Coordinate getWidthCoordinate()
Gets the Coordinate forming one end of the minimum diameter
Returns:
a coordinate forming one end of the minimum diameter
public LineString getSupportingSegment()
Gets the segment forming the base of the minimum diameter
Returns:
the segment forming the base of the minimum diameter
public LineString getDiameter()
Gets a LineString which is a minimum diameter
Returns:
a LineString which is a minimum diameter
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)