Package org.apache.lucene.document
Class LatLonShape
java.lang.Object
org.apache.lucene.document.LatLonShape
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:
createIndexableFields(String, Polygon)for indexing a geo polygon.createDocValueField(String, Polygon)for indexing a geo polygon doc value field.createIndexableFields(String, Polygon, boolean)for indexing a geo polygon with the possibility of checking for self-intersections.createIndexableFields(String, Polygon, boolean)for indexing a geo polygon doc value field with the possibility of checking for self-intersections.createIndexableFields(String, Line)for indexing a geo linestring.createDocValueField(String, Line)for indexing a geo linestring doc value.createIndexableFields(String, double, double)for indexing a lat, lon geo point.createDocValueField(String, double, double)for indexing a lat, lon geo point doc value.createDocValueField(String, BytesRef)for indexing a cartesian doc value from existing encoding.newBoxQuery()for matching geo shapes that have someShapeField.QueryRelationwith a bounding box.newLineQuery()for matching geo shapes that have someShapeField.QueryRelationwith a linestring.newPolygonQuery()for matching geo shapes that have someShapeField.QueryRelationwith a polygon.newGeometryQuery()for matching geo shapes that have someShapeField.QueryRelationwith one or moreLatLonGeometry.createLatLonShapeDocValues(BytesRef)for creating theLatLonShapeDocValues
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 Summary
Modifier and TypeMethodDescriptionstatic LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, double lat, double lon) create doc value field for lat lon line geometry without creating indexable fields.static LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, List<ShapeField.DecodedTriangle> tessellation) create aLatLonShapeDocValuesFieldfrom an existing tessellationstatic LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, Field[] indexableFields) create a shape docvalue field from indexable fieldsstatic LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, Line line) create doc value field for lat lon line geometry without creating indexable fields.static LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, Polygon polygon) create doc value field for lat lon polygon geometry without creating indexable fieldsstatic LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, Polygon polygon, boolean checkSelfIntersections) create doc value field for lat lon polygon geometry without creating indexable fields.static LatLonShapeDocValuesFieldcreateDocValueField(String fieldName, BytesRef binaryValue) create aLatLonShapeDocValuesFieldfrom an existing encoded representationstatic Field[]createIndexableFields(String fieldName, double lat, double lon) create indexable fields for point geometrystatic Field[]createIndexableFields(String fieldName, Line line) create indexable fields for line geometrystatic Field[]createIndexableFields(String fieldName, Polygon polygon) create indexable fields for polygon geometry.static Field[]createIndexableFields(String fieldName, Polygon polygon, boolean checkSelfIntersections) create indexable fields for polygon geometry.static LatLonShapeDocValuescreateLatLonShapeDocValues(BytesRef bytesRef) Factory method for creating theLatLonShapeDocValuesstatic QuerynewBoxQuery(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 *static QuerynewDistanceQuery(String field, ShapeField.QueryRelation queryRelation, Circle... circle) create a query to find all polygons that intersect a provided circle.static QuerynewGeometryQuery(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).static QuerynewLineQuery(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 crossingstatic QuerynewPointQuery(String field, ShapeField.QueryRelation queryRelation, double[]... points) create a query to find all indexed shapes that comply theShapeField.QueryRelationwith the provided pointsstatic QuerynewPolygonQuery(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 crossingstatic QuerynewSlowDocValuesBoxQuery(String field, ShapeField.QueryRelation queryRelation, double minLatitude, double maxLatitude, double minLongitude, double maxLongitude) create a docvalue query to find all geo shapes that intersect a defined bounding box *
-
Method Details
-
createIndexableFields
create indexable fields for polygon geometry. -
createDocValueField
create doc value field for lat lon polygon geometry without creating indexable fields -
createIndexableFields
public static Field[] createIndexableFields(String fieldName, Polygon polygon, boolean checkSelfIntersections) create indexable fields for polygon geometry. IfcheckSelfIntersectionsis set to true, the validity of the provided polygon is checked with a small performance penalty. -
createDocValueField
public static LatLonShapeDocValuesField createDocValueField(String fieldName, Polygon polygon, boolean checkSelfIntersections) create doc value field for lat lon polygon geometry without creating indexable fields. -
createIndexableFields
create indexable fields for line geometry -
createDocValueField
create doc value field for lat lon line geometry without creating indexable fields. -
createIndexableFields
create indexable fields for point geometry -
createDocValueField
public static LatLonShapeDocValuesField createDocValueField(String fieldName, double lat, double lon) create doc value field for lat lon line geometry without creating indexable fields. -
createDocValueField
create aLatLonShapeDocValuesFieldfrom an existing encoded representation -
createDocValueField
public static LatLonShapeDocValuesField createDocValueField(String fieldName, List<ShapeField.DecodedTriangle> tessellation) create aLatLonShapeDocValuesFieldfrom an existing tessellation -
createDocValueField
public static LatLonShapeDocValuesField createDocValueField(String fieldName, Field[] indexableFields) create a shape docvalue field from indexable fields -
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 * -
newSlowDocValuesBoxQuery
public static Query newSlowDocValuesBoxQuery(String field, ShapeField.QueryRelation queryRelation, double minLatitude, double maxLatitude, double minLongitude, double maxLongitude) create a docvalue query to find all 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 theShapeField.QueryRelationwith 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). -
createLatLonShapeDocValues
Factory method for creating theLatLonShapeDocValues- Parameters:
bytesRef-BytesRef- Returns:
LatLonShapeDocValues
-