Package org.geotools.filter
Class CartesianDistanceFilter
- Object
-
- FilterAbstract
-
- AbstractFilter
-
- BinaryComparisonAbstract
-
- GeometryFilterImpl
-
- CartesianDistanceFilter
-
- All Implemented Interfaces:
Filter
,MultiValuedFilter
,BinarySpatialOperator
,DistanceBufferOperator
,SpatialOperator
,FilterType
- Direct Known Subclasses:
BeyondImpl
,DWithinImpl
public abstract class CartesianDistanceFilter extends GeometryFilterImpl implements DistanceBufferOperator
Defines geometry filters with a distance element.These filters are defined in the filter spec by the DistanceBufferType, which contains an additioinal field for a distance. The two filters that use the distance buffer type are Beyond and DWithin.
From the spec: The spatial operators DWithin and Beyond test whether the value of a geometric property is within or beyond a specified distance of the specified literal geometric value. Distance values are expressed using the Distance element.
For now this code does not take into account the units of distance, we will assume that the filter units are the same as the geometry being filtered, and that they are cartesian.
- Author:
- Chris Holmes, TOPP
- TODO:
- REVISIT: add units for distance.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface MultiValuedFilter
MultiValuedFilter.MatchAction
-
-
Field Summary
-
Fields inherited from class GeometryFilterImpl
matchAction
-
Fields inherited from class BinaryComparisonAbstract
expression1, expression2
-
Fields inherited from class AbstractFilter
LOGGER
-
Fields inherited from interface FilterType
ALL, BETWEEN, COMPARE_EQUALS, COMPARE_GREATER_THAN, COMPARE_GREATER_THAN_EQUAL, COMPARE_LESS_THAN, COMPARE_LESS_THAN_EQUAL, COMPARE_NOT_EQUALS, FID, GEOMETRY_BBOX, GEOMETRY_BEYOND, GEOMETRY_CONTAINS, GEOMETRY_CROSSES, GEOMETRY_DISJOINT, GEOMETRY_DWITHIN, GEOMETRY_EQUALS, GEOMETRY_INTERSECTS, GEOMETRY_OVERLAPS, GEOMETRY_TOUCHES, GEOMETRY_WITHIN, LIKE, LOGIC_AND, LOGIC_NOT, LOGIC_OR, NONE, NULL
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CartesianDistanceFilter(Expression e1, Expression e2)
protected
CartesianDistanceFilter(Expression e1, Expression e2, MultiValuedFilter.MatchAction matchAction)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object oFilter)
Returns true if the passed in object is the same as this filter.double
getDistance()
Gets the distance allowed by this filter.String
getDistanceUnits()
Gets the units of measure that can be used to interpret the distance value held by this object.int
hashCode()
Override of hashCode method.void
setDistance(double distance)
Sets the distance allowed by this filter.void
setUnits(String units)
String
toString()
Returns a string representation of this filter.-
Methods inherited from class GeometryFilterImpl
evaluate, evaluateInternal, getGeometries, getMatchAction
-
Methods inherited from class BinaryComparisonAbstract
comparable, eval, eval, getExpression1, getExpression2, isMatchingCase, setExpression1, setExpression2
-
Methods inherited from class AbstractFilter
isCompareFilter, isGeometryDistanceFilter, isGeometryFilter, isLogicFilter, isMathFilter, isSimpleFilter
-
Methods inherited from class FilterAbstract
accepts, eval, eval
-
Methods inherited from interface BinarySpatialOperator
getExpression1, getExpression2
-
Methods inherited from interface MultiValuedFilter
getMatchAction
-
-
-
-
Constructor Detail
-
CartesianDistanceFilter
protected CartesianDistanceFilter(Expression e1, Expression e2)
-
CartesianDistanceFilter
protected CartesianDistanceFilter(Expression e1, Expression e2, MultiValuedFilter.MatchAction matchAction)
-
-
Method Detail
-
setDistance
public void setDistance(double distance)
Sets the distance allowed by this filter.- Parameters:
distance
- the length beyond which this filter is valid or not.
-
getDistance
public double getDistance()
Gets the distance allowed by this filter.- Specified by:
getDistance
in interfaceDistanceBufferOperator
- Returns:
- distance the length beyond which this filter is valid or not.
-
getDistanceUnits
public String getDistanceUnits()
Description copied from interface:DistanceBufferOperator
Gets the units of measure that can be used to interpret the distance value held by this object. An implementation may throw an exception if these units differ from the units of the coordinate system of its geometry or the feature's geometry.- Specified by:
getDistanceUnits
in interfaceDistanceBufferOperator
-
setUnits
public void setUnits(String units)
-
toString
public String toString()
Returns a string representation of this filter.- Overrides:
toString
in classGeometryFilterImpl
- Returns:
- String representation of the between filter.
-
equals
public boolean equals(Object oFilter)
Returns true if the passed in object is the same as this filter. Checks to make sure the filter types are the same as well as all three of the values.- Overrides:
equals
in classGeometryFilterImpl
- Parameters:
oFilter
- The filter to test equality against.- Returns:
- True if the objects are equal.
-
hashCode
public int hashCode()
Override of hashCode method.- Overrides:
hashCode
in classGeometryFilterImpl
- Returns:
- a code to hash this object by.
-
-