Package org.apache.lucene.spatial.query
Class SpatialArgsParser
- java.lang.Object
-
- org.apache.lucene.spatial.query.SpatialArgsParser
-
public class SpatialArgsParser extends Object
Parses a string that usually looks like "OPERATION(SHAPE)" into aSpatialArgs
object. The set of operations supported are defined inSpatialOperation
, such as "Intersects" being a common one. The shape portion is defined by WKTWKTReader
, but it can be overridden/customized viaparseShape(String, org.locationtech.spatial4j.context.SpatialContext)
. There are some optional name-value pair parameters that follow the closing parenthesis. Example:Intersects(ENVELOPE(-10,-8,22,20)) distErrPct=0.025
In the future it would be good to support something at least semi-standardized like a variant of [E]CQL.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description static String
DIST_ERR
static String
DIST_ERR_PCT
-
Constructor Summary
Constructors Constructor Description SpatialArgsParser()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SpatialArgs
newSpatialArgs(SpatialOperation op, org.locationtech.spatial4j.shape.Shape shape)
SpatialArgs
parse(String v, org.locationtech.spatial4j.context.SpatialContext ctx)
Parses a string such as "Intersects(ENVELOPE(-10,-8,22,20)) distErrPct=0.025".protected static Map<String,String>
parseMap(String body)
Parses "a=b zScaling=d f" (whitespace separated) into name-value pairs.protected org.locationtech.spatial4j.shape.Shape
parseShape(String str, org.locationtech.spatial4j.context.SpatialContext ctx)
protected static boolean
readBool(String v, boolean defaultValue)
protected static Double
readDouble(String v)
protected void
readNameValuePairs(SpatialArgs args, Map<String,String> nameValPairs)
-
-
-
Field Detail
-
DIST_ERR_PCT
public static final String DIST_ERR_PCT
- See Also:
- Constant Field Values
-
DIST_ERR
public static final String DIST_ERR
- See Also:
- Constant Field Values
-
-
Method Detail
-
parse
public SpatialArgs parse(String v, org.locationtech.spatial4j.context.SpatialContext ctx) throws ParseException, org.locationtech.spatial4j.exception.InvalidShapeException
Parses a string such as "Intersects(ENVELOPE(-10,-8,22,20)) distErrPct=0.025".- Parameters:
v
- The string to parse. Mandatory.ctx
- The spatial context. Mandatory.- Returns:
- Not null.
- Throws:
IllegalArgumentException
- if the parameters don't make sense or an add-on parameter is unknownParseException
- If there is a problem parsing the stringorg.locationtech.spatial4j.exception.InvalidShapeException
- When the coordinates are invalid for the shape
-
newSpatialArgs
protected SpatialArgs newSpatialArgs(SpatialOperation op, org.locationtech.spatial4j.shape.Shape shape)
-
readNameValuePairs
protected void readNameValuePairs(SpatialArgs args, Map<String,String> nameValPairs)
-
parseShape
protected org.locationtech.spatial4j.shape.Shape parseShape(String str, org.locationtech.spatial4j.context.SpatialContext ctx) throws ParseException
- Throws:
ParseException
-
readBool
protected static boolean readBool(String v, boolean defaultValue)
-
-