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
      • buildS4J

        public org.locationtech.spatial4j.shape.jts.JtsGeometry buildS4J()
        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:
        buildS4J in class ShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,​PolygonBuilder>
        Returns:
        new Shape defined by the builder
      • buildLucene

        public java.lang.Object buildLucene()
        Description copied from class: ShapeBuilder
        build lucene geometry.
        Specified by:
        buildLucene in class ShapeBuilder<org.locationtech.spatial4j.shape.jts.JtsGeometry,​PolygonBuilder>
        Returns:
        GeoPoint, double[][], Line, Line[], Polygon, Polygon[], Rectangle, Object[]
      • buildS4JGeometry

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

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

        protected org.locationtech.jts.geom.Polygon toPolygonS4J​(org.locationtech.jts.geom.GeometryFactory factory)
      • toPolygonLucene

        public java.lang.Object toPolygonLucene()
      • linearRing

        protected static org.apache.lucene.geo.Polygon linearRing​(java.util.List<org.locationtech.jts.geom.Coordinate> coordinates)
      • linearRingS4J

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

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

        protected static org.apache.lucene.geo.Polygon polygonLucene​(org.locationtech.jts.geom.Coordinate[][] polygon)
      • multipolygonS4J

        protected static org.locationtech.jts.geom.MultiPolygon multipolygonS4J​(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
      • multipolygonLucene

        protected static org.apache.lucene.geo.Polygon[] multipolygonLucene​(org.locationtech.jts.geom.Coordinate[][][] polygons)
      • equals

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