Class Polygonizer


  • public class Polygonizer
    extends Object
    Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph. All types of Geometry are accepted as input; the constituent linework is extracted as the edges to be polygonized. The processed edges must be correctly noded; that is, they must only meet at their endpoints. Polygonization will accept incorrectly noded input but will not form polygons from non-noded edges, and reports them as errors.

    The Polygonizer reports the follow kinds of errors:

    • Dangles - edges which have one or both ends which are not incident on another edge endpoint
    • Cut Edges - edges which are connected at both ends but which do not form part of polygon
    • Invalid Ring Lines - edges which form rings which are invalid (e.g. the component lines contain a self-intersection)
    The Polygonizer(boolean) constructor allows extracting only polygons which form a valid polygonal result. The set of extracted polygons is guaranteed to be edge-disjoint. This is useful where it is known that the input lines form a valid polygonal geometry (which may include holes or nested polygons).
    Version:
    1.7
    • Field Detail

      • graph

        protected org.locationtech.jts.operation.polygonize.PolygonizeGraph graph
      • holeList

        protected List<org.locationtech.jts.operation.polygonize.EdgeRing> holeList
      • shellList

        protected List<org.locationtech.jts.operation.polygonize.EdgeRing> shellList
    • Constructor Detail

      • Polygonizer

        public Polygonizer()
        Creates a polygonizer that extracts all polygons.
      • Polygonizer

        public Polygonizer​(boolean extractOnlyPolygonal)
        Creates a polygonizer, specifying whether a valid polygonal geometry must be created. If the argument is true then areas may be discarded in order to ensure that the extracted geometry is a valid polygonal geometry.
        Parameters:
        extractOnlyPolygonal - true if a valid polygonal geometry should be extracted
    • Method Detail

      • add

        public void add​(Collection geomList)
        Adds a collection of geometries to the edges to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used.
        Parameters:
        geomList - a list of Geometrys with linework to be polygonized
      • add

        public void add​(Geometry g)
        Add a Geometry to the edges to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used
        Parameters:
        g - a Geometry with linework to be polygonized
      • setCheckRingsValid

        public void setCheckRingsValid​(boolean isCheckingRingsValid)
        Allows disabling the valid ring checking, to optimize situations where invalid rings are not expected.

        The default is true.

        Parameters:
        isCheckingRingsValid - true if generated rings should be checked for validity
      • getPolygons

        public Collection getPolygons()
        Gets the list of polygons formed by the polygonization.
        Returns:
        a collection of Polygons
      • getGeometry

        public Geometry getGeometry()
        Gets a geometry representing the polygons formed by the polygonization. If a valid polygonal geometry was extracted the result is a Polygonal geometry.
        Returns:
        a geometry containing the polygons
      • getDangles

        public Collection getDangles()
        Gets the list of dangling lines found during polygonization.
        Returns:
        a collection of the input LineStrings which are dangles
      • getCutEdges

        public Collection getCutEdges()
        Gets the list of cut edges found during polygonization.
        Returns:
        a collection of the input LineStrings which are cut edges
      • getInvalidRingLines

        public Collection getInvalidRingLines()
        Gets the list of lines forming invalid rings found during polygonization.
        Returns:
        a collection of the input LineStrings which form invalid rings