com.vividsolutions.jts.operation.polygonize
Class EdgeRing
java.lang.Object
com.vividsolutions.jts.operation.polygonize.EdgeRing
public class EdgeRing
extends java.lang.Object
Represents a ring of
PolygonizeDirectedEdge
s which form
a ring of a polygon. The ring may be either an outer shell or a hole.
addHole
public void addHole(LinearRing hole)
Adds a hole to the polygon formed by this ring.
findEdgeRingContaining
public static EdgeRing findEdgeRingContaining(EdgeRing testEr,
List shellList)
Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
The innermost enclosing ring is the smallest enclosing ring.
The algorithm used depends on the fact that:
ring A contains ring B iff envelope(ring A) contains envelope(ring B)
This routine is only safe to use if the chosen point of the hole
is known to be properly contained in a shell
(which is guaranteed to be the case if the hole does not touch its shell)
- containing EdgeRing, if there is one
getLineString
public LineString getLineString()
Gets the coordinates for this ring as a
LineString
.
Used to return the coordinates in this ring
as a valid geometry, when it has been detected that the ring is topologically
invalid.
- a
LineString
containing the coordinates in this ring
getPolygon
public Polygon getPolygon()
getRing
public LinearRing getRing()
Returns this ring as a
LinearRing
, or null if an Exception occurs while
creating it (such as a topology problem). Details of problems are written to
standard output.
isHole
public boolean isHole()
Tests whether this ring is a hole.
Due to the way the edges in the polyongization graph are linked,
a ring is a hole if it is oriented counter-clockwise.
true
if this ring is a hole
isInList
public static boolean isInList(Coordinate pt,
Coordinate[] pts)
Tests whether a given point is in an array of points.
Uses a value-based test.
true
if the point is in the array
isValid
public boolean isValid()
Tests if the
LinearRing
ring formed by this edge ring is topologically valid.
ptNotInList
public static Coordinate ptNotInList(Coordinate[] testPts,
Coordinate[] pts)
Finds a point in a list of points which is not contained in another list of points
- a
Coordinate
from testPts
which is not in pts
, '
or null