org.geotools.filter
Class CartesianDistanceFilter
java.lang.Object
org.geotools.filter.FilterAbstract
org.geotools.filter.AbstractFilter
org.geotools.filter.BinaryComparisonAbstract
org.geotools.filter.GeometryFilterImpl
org.geotools.filter.CartesianDistanceFilter
- All Implemented Interfaces:
- org.opengis.filter.BinaryComparisonOperator, org.opengis.filter.spatial.BinarySpatialOperator, org.opengis.filter.spatial.DistanceBufferOperator, Filter, org.opengis.filter.Filter, FilterType, GeometryDistanceFilter, GeometryFilter, org.opengis.filter.spatial.SpatialOperator
- Direct Known Subclasses:
- BeyondImpl, DWithinImpl
- public abstract class CartesianDistanceFilter
- extends GeometryFilterImpl
- implements GeometryDistanceFilter
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.
- Version:
- $Id: CartesianDistanceFilter.java 18021 2006-02-14 20:36:18Z jdeolive $
- Author:
- Chris Holmes, TOPP
- Task:
- REVISIT: add units for distance.
Fields inherited from interface org.geotools.filter.Filter |
ALL, NONE |
Fields inherited from interface org.geotools.filter.FilterType |
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, NULL |
Method Summary |
boolean |
equals(java.lang.Object oFilter)
Returns true if the passed in object is the same as this filter. |
abstract boolean |
evaluate(Feature feature)
Determines whether or not a given feature is 'inside' this filter. |
double |
getDistance()
Gets the distance allowed by this filter. |
java.lang.String |
getDistanceUnits()
|
int |
hashCode()
Override of hashCode method. |
void |
setDistance(double distance)
Sets the distance allowed by this filter. |
void |
setUnits(java.lang.String units)
|
java.lang.String |
toString()
Returns a string representation of this filter. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.opengis.filter.Filter |
accept, evaluate |
Methods inherited from interface org.opengis.filter.spatial.BinarySpatialOperator |
getExpression1, getExpression2 |
CartesianDistanceFilter
protected CartesianDistanceFilter(FilterFactory factory)
CartesianDistanceFilter
protected CartesianDistanceFilter(FilterFactory factory,
org.opengis.filter.expression.Expression e1,
org.opengis.filter.expression.Expression e2)
CartesianDistanceFilter
protected CartesianDistanceFilter(short filterType)
throws IllegalFilterException
- Constructor which flags the operator as between.
- Parameters:
filterType
- The type of filter to create - dwithin and beyond are
allowed.
- Throws:
IllegalFilterException
- If a filter other than dwithin or beyond
is attempted.
setDistance
public void setDistance(double distance)
- Sets the distance allowed by this filter.
- Specified by:
setDistance
in interface GeometryDistanceFilter
- 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 interface GeometryDistanceFilter
- Returns:
- distance the length beyond which this filter is valid or not.
getDistanceUnits
public java.lang.String getDistanceUnits()
- Specified by:
getDistanceUnits
in interface org.opengis.filter.spatial.DistanceBufferOperator
setUnits
public void setUnits(java.lang.String units)
evaluate
public abstract boolean evaluate(Feature feature)
- Determines whether or not a given feature is 'inside' this filter.
- Specified by:
evaluate
in interface Filter
- Specified by:
evaluate
in class GeometryFilterImpl
- Parameters:
feature
- Specified feature to examine.
- Returns:
- Flag confirming whether or not this feature is inside the
filter.
toString
public java.lang.String toString()
- Returns a string representation of this filter.
- Overrides:
toString
in class GeometryFilterImpl
- Returns:
- String representation of the between filter.
equals
public boolean equals(java.lang.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.
- Specified by:
equals
in interface GeometryDistanceFilter
- Overrides:
equals
in class GeometryFilterImpl
- 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 class GeometryFilterImpl
- Returns:
- a code to hash this object by.
Copyright © GeoTools. All Rights Reserved.