Package org.apache.lucene.geo
Class Polygon
- java.lang.Object
-
- org.apache.lucene.geo.Geometry
-
- org.apache.lucene.geo.LatLonGeometry
-
- org.apache.lucene.geo.Polygon
-
public final class Polygon extends LatLonGeometry
Represents a closed polygon on the earth's surface. You can either construct the Polygon directly yourself withdouble[]coordinates, or usefromGeoJSON(java.lang.String)if you have a polygon already encoded as a GeoJSON string.NOTES:
- Coordinates must be in clockwise order, except for holes. Holes must be in counter-clockwise order.
- The polygon must be closed: the first and last coordinates need to have the same values.
- The polygon must not be self-crossing, otherwise may result in unexpected behavior.
- All latitude/longitude values must be in decimal degrees.
- Polygons cannot cross the 180th meridian. Instead, use two polygons: one on each side.
- For more advanced GeoSpatial indexing and query operations see the
spatial-extrasmodule
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description doublemaxLatmaximum latitude of this polygon's bounding box areadoublemaxLonmaximum longitude of this polygon's bounding box areadoubleminLatminimum latitude of this polygon's bounding box areadoubleminLonminimum longitude of this polygon's bounding box area
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)static Polygon[]fromGeoJSON(String geojson)Parses a standard GeoJSON polygon string.Polygon[]getHoles()Returns a copy of the internal holes arraydoublegetPolyLat(int vertex)Returns latitude value at given indexdouble[]getPolyLats()Returns a copy of the internal latitude arraydoublegetPolyLon(int vertex)Returns longitude value at given indexdouble[]getPolyLons()Returns a copy of the internal longitude arrayGeoUtils.WindingOrdergetWindingOrder()Returns the winding order (CW, COLINEAR, CCW) for the polygon shellinthashCode()intnumHoles()returns the number of holes for the polygonintnumPoints()returns the number of vertex pointsprotected Component2DtoComponent2D()get a Component2D from the geometry objectStringtoGeoJSON()prints polygons as geojsonStringtoString()static StringverticesToGeoJSON(double[] lats, double[] lons)-
Methods inherited from class org.apache.lucene.geo.LatLonGeometry
create
-
-
-
-
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
-
toComponent2D
protected Component2D toComponent2D()
Description copied from class:Geometryget a Component2D from the geometry object- Specified by:
toComponent2Din classGeometry
-
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.- Throws:
ParseException
-
-