Class PolygonBuilder

    • Method Detail

      • hole

        public PolygonBuilder hole​(LineStringBuilder hole)
        Add a new hole to the polygon
        Parameters:
        hole - linear ring defining the hole
        Returns:
        this
      • hole

        public PolygonBuilder hole​(LineStringBuilder hole,
                                   boolean coerce)
        Add a new hole to the polygon
        Parameters:
        hole - linear ring defining the hole
        coerce - if set to true, it will try to close the hole by adding starting point as end point
        Returns:
        this
      • holes

        public java.util.List<LineStringBuilder> holes()
        Returns:
        the list of holes defined for this polygon
      • shell

        public LineStringBuilder shell()
        Returns:
        the list of points of the shell for this polygon
      • close

        public PolygonBuilder close()
        Close the shell of the polygon
      • validateHole

        protected void validateHole​(LineStringBuilder shell,
                                    LineStringBuilder hole)
        Validates only 1 vertex is tangential (shared) between the interior and exterior of a polygon
      • coordinates

        public org.locationtech.jts.geom.Coordinate[][][] coordinates()
        The coordinates setup by the builder will be assembled to a polygon. The result will consist of a set of polygons. Each of these components holds a list of linestrings defining the polygon: the first set of coordinates will be used as the shell of the polygon. The others are defined to holes within the polygon. This Method also wraps the polygons at the dateline. In order to this fact the result may contains more polygons and less holes than defined in the builder it self.
        Returns:
        coordinates of the polygon
      • build

        public org.locationtech.spatial4j.shape.jts.JtsGeometry build()
        Description copied from class: ShapeBuilder
        Create a new Shape from this builder. Since calling this method could change the defined shape. (by inserting new coordinates or change the position of points) the builder looses its validity. So this method should only be called once on a builder
        Specified by:
        build in class ShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,​PolygonBuilder>
        Returns:
        new Shape defined by the builder
      • buildGeometry

        public org.locationtech.jts.geom.Geometry buildGeometry​(org.locationtech.jts.geom.GeometryFactory factory,
                                                                boolean fixDateline)
      • toPolygon

        public org.locationtech.jts.geom.Polygon toPolygon()
      • toPolygon

        protected org.locationtech.jts.geom.Polygon toPolygon​(org.locationtech.jts.geom.GeometryFactory factory)
      • linearRing

        protected static org.locationtech.jts.geom.LinearRing linearRing​(org.locationtech.jts.geom.GeometryFactory factory,
                                                                         java.util.List<org.locationtech.jts.geom.Coordinate> coordinates)
      • polygon

        protected static org.locationtech.jts.geom.Polygon polygon​(org.locationtech.jts.geom.GeometryFactory factory,
                                                                   org.locationtech.jts.geom.Coordinate[][] polygon)
      • multipolygon

        protected static org.locationtech.jts.geom.MultiPolygon multipolygon​(org.locationtech.jts.geom.GeometryFactory factory,
                                                                             org.locationtech.jts.geom.Coordinate[][][] polygons)
        Create a Multipolygon from a set of coordinates. Each primary array contains a polygon which in turn contains an array of linestrings. These line Strings are represented as an array of coordinates. The first linestring will be the shell of the polygon the others define holes within the polygon.
        Parameters:
        factory - GeometryFactory to use
        polygons - definition of polygons
        Returns:
        a new Multipolygon
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class ShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,​PolygonBuilder>