public class MinimumDiameter extends Object
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.
ConvexHull
| Constructor and Description |
|---|
MinimumDiameter(Geometry
Compute a minimum diameter for a given
Geometry.
|
MinimumDiameter(Geometry
Compute a minimum diameter for a giver
Geometry, with a hint if the Geometry is convex (e.g.
|
| Modifier and Type | Method and Description |
|---|---|
LineString |
getDiameter()
Gets a
LineString which is a minimum diameter
|
double |
getLength()
Gets the length of the minimum diameter of the input Geometry
|
static Geometry |
getMinimumDiameter(Geometry
Gets the length of the minimum diameter enclosing a geometry
|
Geometry |
getMinimumRectangle()
Gets the minimum rectangular
Polygon which encloses the input geometry.
|
static Geometry |
getMinimumRectangle(Geometry
Gets the minimum rectangle enclosing a geometry.
|
LineString |
getSupportingSegment()
Gets the segment forming the base of the minimum diameter
|
Coordinate |
getWidthCoordinate()
Gets the
Coordinate forming one end of the minimum diameter
|
public MinimumDiameter(GeometryinputGeom)
Geometry.
geom - a Geometry
public MinimumDiameter(GeometryinputGeom, boolean isConvex)
Geometry, with a hint if the Geometry is convex (e.g. a convex Polygon or LinearRing, or a two-point LineString, or a Point).
geom - a Geometry which is convex
isConvex -
true if the input geometry is convex
public static GeometrygetMinimumRectangle(Geometry geom)
geom - the geometry
public static GeometrygetMinimumDiameter(Geometry geom)
geom - the geometry
public double getLength()
public CoordinategetWidthCoordinate()
Coordinate forming one end of the minimum diameter
public LineStringgetSupportingSegment()
public LineStringgetDiameter()
LineString which is a minimum diameter
LineString which is a minimum diameter
public GeometrygetMinimumRectangle()
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.