public final class Polygon extends java.lang.Object implements CoordinateContainer<java.util.List<java.util.List<Point>>>
To specify a constraint specific to Polygons, it is useful to introduce the concept of a linear ring:
RuntimeException will
 occur.
 Though a linear ring is not explicitly represented as a GeoJson geometry TYPE, it leads to a canonical formulation of the Polygon geometry TYPE. When initializing a new instance of this class, a LineString for the outer and optionally an inner are checked to ensure a valid linear ring.
An example of a serialized polygon with no holes is given below:
 {
   "TYPE": "Polygon",
   "coordinates": [
     [[100.0, 0.0],
     [101.0, 0.0],
     [101.0, 1.0],
     [100.0, 1.0],
     [100.0, 0.0]]
   ]
 }
 | Modifier and Type | Method and Description | 
|---|---|
BoundingBox | 
bbox()
A Feature Collection might have a member named  
bbox to include information on the
 coordinate range for it's Features. | 
java.util.List<java.util.List<Point>> | 
coordinates()
Provides the list of  
Points that make up the Polygon geometry. | 
boolean | 
equals(java.lang.Object obj)  | 
static Polygon | 
fromJson(java.lang.String json)
Create a new instance of this class by passing in a formatted valid JSON String. 
 | 
static Polygon | 
fromLngLats(java.util.List<java.util.List<Point>> coordinates)
Create a new instance of this class by defining a list of  
Points which follow the
 correct specifications described in the Point documentation. | 
static Polygon | 
fromLngLats(java.util.List<java.util.List<Point>> coordinates,
           BoundingBox bbox)
Create a new instance of this class by defining a list of  
Points which follow the
 correct specifications described in the Point documentation. | 
static Polygon | 
fromOuterInner(LineString outer,
              BoundingBox bbox,
              LineString... inner)
Create a new instance of this class by passing in an outer  
LineString and optionally
 one or more inner LineStrings. | 
static Polygon | 
fromOuterInner(LineString outer,
              BoundingBox bbox,
              java.util.List<LineString> inner)
Create a new instance of this class by passing in an outer  
LineString and optionally
 one or more inner LineStrings contained within a list. | 
static Polygon | 
fromOuterInner(LineString outer,
              LineString... inner)
Create a new instance of this class by passing in an outer  
LineString and optionally
 one or more inner LineStrings. | 
static Polygon | 
fromOuterInner(LineString outer,
              java.util.List<LineString> inner)
Create a new instance of this class by passing in an outer  
LineString and optionally
 one or more inner LineStrings contained within a list. | 
int | 
hashCode()  | 
java.util.List<LineString> | 
inner()
Convenience method to get a list of inner  
LineStrings defining holes inside the
 polygon. | 
LineString | 
outer()
Convenience method to get the outer  
LineString which defines the outer perimeter of
 the polygon. | 
java.lang.String | 
toJson()
This takes the currently defined values found inside this instance and converts it to a GeoJson
 string. 
 | 
java.lang.String | 
toString()  | 
java.lang.String | 
type()
This describes the TYPE of GeoJson geometry this object is, thus this will always return
  
Polygon. | 
static com.google.gson.TypeAdapter<Polygon> | 
typeAdapter(com.google.gson.Gson gson)
Gson TYPE adapter for parsing Gson to this class. 
 | 
public static Polygon fromJson(@NonNull java.lang.String json)
fromOuterInner(LineString, LineString...). For a valid
 For a valid Polygon to exist, it must follow the linear ring rules and the first list of
 coordinates are considered the outer ring by default.json - a formatted valid JSON string defining a GeoJson Polygonpublic static Polygon fromLngLats(@NonNull java.util.List<java.util.List<Point>> coordinates)
Points which follow the
 correct specifications described in the Point documentation. Note that the first and last point
 in the list should be the same enclosing the linear ring.coordinates - a list of a list of points which represent the polygon geometrypublic static Polygon fromLngLats(@NonNull java.util.List<java.util.List<Point>> coordinates, @Nullable BoundingBox bbox)
Points which follow the
 correct specifications described in the Point documentation. Note that the first and last point
 in the list should be the same enclosing the linear ring.coordinates - a list of a list of points which represent the polygon geometrybbox - optionally include a bbox definition as a double arraypublic static Polygon fromOuterInner(@NonNull LineString outer, @Nullable LineString... inner)
LineString and optionally
 one or more inner LineStrings. Each of these LineStrings should follow the linear ring rules.
 
 Note that if a LineString breaks one of the linear ring rules, a RuntimeException will
 be thrown.
outer - a LineString which defines the outer perimeter of the polygoninner - one or more LineStrings representing holes inside the outer perimeterpublic static Polygon fromOuterInner(@NonNull LineString outer, @Nullable BoundingBox bbox, @Nullable LineString... inner)
LineString and optionally
 one or more inner LineStrings. Each of these LineStrings should follow the linear ring rules.
 
 Note that if a LineString breaks one of the linear ring rules, a RuntimeException will
 be thrown.
outer - a LineString which defines the outer perimeter of the polygonbbox - optionally include a bbox definition as a double arrayinner - one or more LineStrings representing holes inside the outer perimeterpublic static Polygon fromOuterInner(@NonNull LineString outer, @Nullable java.util.List<LineString> inner)
LineString and optionally
 one or more inner LineStrings contained within a list. Each of these LineStrings should follow
 the linear ring rules.
 
 Note that if a LineString breaks one of the linear ring rules, a RuntimeException will
 be thrown.
outer - a LineString which defines the outer perimeter of the polygoninner - one or more LineStrings inside a list representing holes inside the outer
              perimeterpublic static Polygon fromOuterInner(@NonNull LineString outer, @Nullable BoundingBox bbox, @Nullable java.util.List<LineString> inner)
LineString and optionally
 one or more inner LineStrings contained within a list. Each of these LineStrings should follow
 the linear ring rules.
 
 Note that if a LineString breaks one of the linear ring rules, a RuntimeException will
 be thrown.
outer - a LineString which defines the outer perimeter of the polygonbbox - optionally include a bbox definition as a double arrayinner - one or more LineStrings inside a list representing holes inside the outer
              perimeter@Nullable public LineString outer()
LineString which defines the outer perimeter of
 the polygon.LineString defining the outer perimeter of this polygon@Nullable public java.util.List<LineString> inner()
LineStrings defining holes inside the
 polygon. It is not guaranteed that this instance of Polygon contains holes and thus, might
 return a null or empty list.LineStrings defining holes inside the polygon@NonNull public java.lang.String type()
Polygon.@Nullable public BoundingBox bbox()
bbox to include information on the
 coordinate range for it's Features. The value of the bbox member MUST be a list of
 size 2*n where n is the number of dimensions represented in the contained feature geometries,
 with all axes of the most southwesterly point followed by all axes of the more northeasterly
 point. The axes order of a bbox follows the axes order of geometries.@NonNull public java.util.List<java.util.List<Point>> coordinates()
Points that make up the Polygon geometry. The first list holds the
 different LineStrings, first being the outer ring and the following entries being inner holes
 (if they exist).coordinates in interface CoordinateContainer<java.util.List<java.util.List<Point>>>public java.lang.String toJson()
public static com.google.gson.TypeAdapter<Polygon> typeAdapter(com.google.gson.Gson gson)
gson - the built Gson objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Object