Class BasePolygonBuilder<E extends BasePolygonBuilder<E>>

  • Type Parameters:
    E - type of the embedding class
    All Implemented Interfaces:
    ToXContent
    Direct Known Subclasses:
    MultiPolygonBuilder.InternalPolygonBuilder, PolygonBuilder


    public abstract class BasePolygonBuilder<E extends BasePolygonBuilder<E>>
    extends ShapeBuilder
    The BasePolygonBuilder implements the groundwork to create polygons. This contains Methods to wrap polygons at the dateline and building shapes from the data held by the builder. Since this Builder can be embedded to other builders (i.e. MultiPolygonBuilder) the class of the embedding builder is given by the generic argument E
    • Method Detail

      • point

        public E point(double longitude,
                       double latitude)
      • point

        public E point(Coordinate coordinate)
        Add a point to the shell of the polygon
        Parameters:
        coordinate - coordinate of the new point
        Returns:
        this
      • points

        public E points(Coordinate... coordinates)
        Add a array of points to the shell of the polygon
        Parameters:
        coordinates - coordinates of the new points to add
        Returns:
        this
      • hole

        public E hole(BaseLineStringBuilder<?> hole)
        Add a new hole to the polygon
        Parameters:
        hole - linear ring defining the hole
        Returns:
        this
      • hole

        public BasePolygonBuilder.Ring<E> hole()
        build new hole to the polygon
        Parameters:
        hole - linear ring defining the hole
        Returns:
        this
      • close

        public ShapeBuilder close()
        Close the shell of the polygon
        Returns:
        parent
      • coordinates

        public 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 com.spatial4j.core.shape.Shape 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
        Returns:
        new Shape defined by the builder
      • buildGeometry

        public Geometry buildGeometry(GeometryFactory factory,
                                      boolean fixDateline)
      • toPolygon

        public Polygon toPolygon()
      • toPolygon

        protected Polygon toPolygon(GeometryFactory factory)
      • linearRing

        protected static LinearRing linearRing(GeometryFactory factory,
                                               ArrayList<Coordinate> coordinates)
      • polygon

        protected static Polygon polygon(GeometryFactory factory,
                                         Coordinate[][] polygon)
      • multipolygon

        protected static MultiPolygon multipolygon(GeometryFactory factory,
                                                   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