Class LatLonShape

java.lang.Object
org.apache.lucene.document.LatLonShape

public class LatLonShape extends Object
An geo shape utility class for indexing and searching gis geometries whose vertices are latitude, longitude values (in decimal degrees).

This class defines seven static factory methods for common indexing and search operations:

WARNING: Like LatLonPoint, vertex values are indexed with some loss of precision from the original double values (4.190951585769653E-8 for the latitude component and 8.381903171539307E-8 for longitude).
See Also:
  • Method Details

    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, Polygon polygon)
      create indexable fields for polygon geometry.
    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, Polygon polygon, boolean checkSelfIntersections)
      create indexable fields for polygon geometry. If checkSelfIntersections is set to true, the validity of the provided polygon is checked with a small performance penalty.
    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, Line line)
      create indexable fields for line geometry
    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, double lat, double lon)
      create indexable fields for point geometry
    • newBoxQuery

      public static Query newBoxQuery(String field, ShapeField.QueryRelation queryRelation, double minLatitude, double maxLatitude, double minLongitude, double maxLongitude)
      create a query to find all indexed geo shapes that intersect a defined bounding box *
    • newLineQuery

      public static Query newLineQuery(String field, ShapeField.QueryRelation queryRelation, Line... lines)
      create a query to find all indexed geo shapes that intersect a provided linestring (or array of linestrings) note: does not support dateline crossing
    • newPolygonQuery

      public static Query newPolygonQuery(String field, ShapeField.QueryRelation queryRelation, Polygon... polygons)
      create a query to find all indexed geo shapes that intersect a provided polygon (or array of polygons) note: does not support dateline crossing
    • newPointQuery

      public static Query newPointQuery(String field, ShapeField.QueryRelation queryRelation, double[]... points)
      create a query to find all indexed shapes that comply the ShapeField.QueryRelation with the provided points
    • newDistanceQuery

      public static Query newDistanceQuery(String field, ShapeField.QueryRelation queryRelation, Circle... circle)
      create a query to find all polygons that intersect a provided circle.
    • newGeometryQuery

      public static Query newGeometryQuery(String field, ShapeField.QueryRelation queryRelation, LatLonGeometry... latLonGeometries)
      create a query to find all indexed geo shapes that intersect a provided geometry (or array of geometries).