Class Polygon

  • public final class Polygon
    extends LatLonGeometry
    Represents a closed polygon on the earth's surface. You can either construct the Polygon directly yourself with double[] coordinates, or use fromGeoJSON(java.lang.String) if you have a polygon already encoded as a GeoJSON string.


    1. Coordinates must be in clockwise order, except for holes. Holes must be in counter-clockwise order.
    2. The polygon must be closed: the first and last coordinates need to have the same values.
    3. The polygon must not be self-crossing, otherwise may result in unexpected behavior.
    4. All latitude/longitude values must be in decimal degrees.
    5. Polygons cannot cross the 180th meridian. Instead, use two polygons: one on each side.
    6. For more advanced GeoSpatial indexing and query operations see the spatial-extras module
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Field Detail

      • minLat

        public final double minLat
        minimum latitude of this polygon's bounding box area
      • maxLat

        public final double maxLat
        maximum latitude of this polygon's bounding box area
      • minLon

        public final double minLon
        minimum longitude of this polygon's bounding box area
      • maxLon

        public final double maxLon
        maximum longitude of this polygon's bounding box area
    • Constructor Detail

      • Polygon

        public Polygon​(double[] polyLats,
                       double[] polyLons,
                       Polygon... holes)
        Creates a new Polygon from the supplied latitude/longitude array, and optionally any holes.
    • Method Detail

      • numPoints

        public int numPoints()
        returns the number of vertex points
      • getPolyLats

        public double[] getPolyLats()
        Returns a copy of the internal latitude array
      • getPolyLat

        public double getPolyLat​(int vertex)
        Returns latitude value at given index
      • getPolyLons

        public double[] getPolyLons()
        Returns a copy of the internal longitude array
      • getPolyLon

        public double getPolyLon​(int vertex)
        Returns longitude value at given index
      • getHoles

        public Polygon[] getHoles()
        Returns a copy of the internal holes array
      • getWindingOrder

        public GeoUtils.WindingOrder getWindingOrder()
        Returns the winding order (CW, COLINEAR, CCW) for the polygon shell
      • numHoles

        public int numHoles()
        returns the number of holes for the polygon
      • hashCode

        public int hashCode()
        hashCode in class Object
      • verticesToGeoJSON

        public static String verticesToGeoJSON​(double[] lats,
                                               double[] lons)
      • toGeoJSON

        public String toGeoJSON()
        prints polygons as geojson
      • fromGeoJSON

        public static Polygon[] fromGeoJSON​(String geojson)
                                     throws ParseException
        Parses a standard GeoJSON polygon string. The type of the incoming GeoJSON object must be a Polygon or MultiPolygon, optionally embedded under a "type: Feature". A Polygon will return as a length 1 array, while a MultiPolygon will be 1 or more in length.

        See the GeoJSON specification.