org.geotools.filter
Interface GeometryDistanceFilter

All Superinterfaces:
Filter, FilterType, GeometryFilter
All Known Implementing Classes:
CartesianDistanceFilter

public interface GeometryDistanceFilter
extends GeometryFilter

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.

Version:
$Id: GeometryDistanceFilter.java,v 1.2 2003/08/07 21:30:36 cholmesny Exp $
Author:
Chris Holmes, TOPP
Task:
REVISIT: add units for distance. Should it just be a string? Or should it actually resolve the definition?

Field Summary
 
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 contains(Feature feature)
          Determines whether or not a given feature is 'inside' this filter.
 boolean equals(java.lang.Object obj)
          Returns true if the passed in object is the same as this filter.
 double getDistance()
          Gets the distance allowed by this filter.
 void setDistance(double distance)
          Sets the distance allowed by this filter.
 
Methods inherited from interface org.geotools.filter.GeometryFilter
addLeftGeometry, addRightGeometry, getLeftGeometry, getRightGeometry
 
Methods inherited from interface org.geotools.filter.Filter
accept, and, getFilterType, not, or
 

Method Detail

equals

public boolean equals(java.lang.Object obj)
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.

Parameters:
obj - The filter to test equality against.
Returns:
True if the objects are equal.

setDistance

public void setDistance(double distance)
                 throws IllegalFilterException
Sets the distance allowed by this filter.

Parameters:
distance - the length beyond which this filter is valid or not.
Throws:
IllegalFilterException - for problems setting the distance.

contains

public boolean contains(Feature feature)
Determines whether or not a given feature is 'inside' this filter.

Specified by:
contains in interface GeometryFilter
Parameters:
feature - Specified feature to examine.
Returns:
Flag confirming whether or not this feature is inside the filter.

getDistance

public double getDistance()
Gets the distance allowed by this filter.

Returns:
distance the length beyond which this filter is valid or not.


Copyright © GeoTools. All Rights Reserved.