Package org.locationtech.jts.algorithm
Class InteriorPointArea
- java.lang.Object
-
- org.locationtech.jts.algorithm.InteriorPointArea
-
public class InteriorPointArea extends java.lang.Object
Computes a point in the interior of an areal geometry. The point will lie in the geometry interior in all except certain pathological cases.Algorithm
For each input polygon:- Determine a horizontal scan line on which the interior point will be located. To increase the chance of the scan line having non-zero-width intersection with the polygon the scan line Y ordinate is chosen to be near the centre of the polygon's Y extent but distinct from all of vertex Y ordinates.
- Compute the sections of the scan line which lie in the interior of the polygon.
- Choose the widest interior section and take its midpoint as the interior point.
This algorithm is a tradeoff between performance and point quality (where points further from the geometry boundary are considered to be higher quality) Priority is given to performance. This means that the computed interior point may not be suitable for some uses (such as label positioning).
The algorithm handles some kinds of invalid/degenerate geometry, including zero-area and self-intersecting polygons.
Empty geometry is handled by returning a
null
point.KNOWN BUGS
- If a fixed precision model is used, in some cases this method may return a point which does not lie in the interior.
- If the input polygon is extremely narrow the computed point may not lie in the interior of the polygon.
- Version:
- 1.17
-
-
Constructor Summary
Constructors Constructor Description InteriorPointArea(Geometry g)
Creates a new interior point finder for an areal geometry.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Coordinate
getInteriorPoint()
Gets the computed interior point.static Coordinate
getInteriorPoint(Geometry geom)
Computes an interior point for the polygonal components of a Geometry.
-
-
-
Constructor Detail
-
InteriorPointArea
public InteriorPointArea(Geometry g)
Creates a new interior point finder for an areal geometry.- Parameters:
g
- an areal geometry
-
-
Method Detail
-
getInteriorPoint
public static Coordinate getInteriorPoint(Geometry geom)
Computes an interior point for the polygonal components of a Geometry.- Parameters:
geom
- the geometry to compute- Returns:
- the computed interior point,
or
null
if the geometry has no polygonal components
-
getInteriorPoint
public Coordinate getInteriorPoint()
Gets the computed interior point.- Returns:
- the coordinate of an interior point
or
null
if the input geometry is empty
-
-