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 aSpatialArgsobject. 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 StringDIST_ERRstatic StringDIST_ERR_PCT
-
Constructor Summary
Constructors Constructor Description SpatialArgsParser()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SpatialArgsnewSpatialArgs(SpatialOperation op, org.locationtech.spatial4j.shape.Shape shape)SpatialArgsparse(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.ShapeparseShape(String str, org.locationtech.spatial4j.context.SpatialContext ctx)protected static booleanreadBool(String v, boolean defaultValue)protected static DoublereadDouble(String v)protected voidreadNameValuePairs(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)
-
-