org.geotools.filter.visitor
Class ExtractBoundsFilterVisitor
java.lang.Object
org.geotools.filter.visitor.NullFilterVisitor
org.geotools.filter.visitor.ExtractBoundsFilterVisitor
- All Implemented Interfaces:
- org.opengis.filter.expression.ExpressionVisitor, org.opengis.filter.FilterVisitor
public class ExtractBoundsFilterVisitor
- extends NullFilterVisitor
Extract a maximal envelope from the provided Filter.
The maximal envelope is generated from:
- all the literal geometry instances involved if spatial operations - using
geom.getEnvelopeInternal().
- Filter.EXCLUDES will result in an empty envelope
- Filter.INCLUDES will result in a "world" envelope with range Double.NEGATIVE_INFINITY to
Double.POSITIVE_INFINITY for each axis.
- all other non spatial filters will result in a world envelope
- combinations in and will return the intersection of the envelopes, or an empty envelope
if an exclude is in the mix, or null if the and is mixing non spatial filters
- combinations in or will return the intersection of
Since geometry literals do not contains CRS information we can only produce a ReferencedEnvelope
without CRS information. You can call this function with an existing ReferencedEnvelope
or with your data CRS to correct for this limitation.
ReferencedEnvelope example:
ReferencedEnvelope bbox = (ReferencedEnvelope)
filter.accepts(new ExtractBoundsFilterVisitor(), dataCRS );
You can also call this function with an existing Envelope; if you are building up bounds based on
several filters.
This is a replacement for FilterConsumer.
- Author:
- Jody Garnett
Constructor Summary |
protected |
ExtractBoundsFilterVisitor()
This FilterVisitor is stateless - use ExtractBoundsFilterVisitor.BOUNDS_VISITOR. |
Method Summary |
java.lang.Object |
visit(org.opengis.filter.expression.Add expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.And filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.BBOX filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Beyond filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Contains filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Crosses filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Disjoint filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.expression.Divide expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.DWithin filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Equals filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.ExcludeFilter filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.expression.Function expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.Id filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.IncludeFilter filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Intersects filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.expression.Literal expression,
java.lang.Object data)
Please note we are only visiting literals involved in spatial operations. |
java.lang.Object |
visit(org.opengis.filter.expression.Multiply expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.expression.NilExpression expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.Not filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.Or filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Overlaps filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsBetween filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsEqualTo filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsGreaterThan filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsGreaterThanOrEqualTo filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsLessThan filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsLessThanOrEqualTo filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsLike filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsNotEqualTo filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.PropertyIsNull filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.expression.PropertyName expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.expression.Subtract expression,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Touches filter,
java.lang.Object data)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Within filter,
java.lang.Object data)
|
java.lang.Object |
visitNullFilter(java.lang.Object data)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BOUNDS_VISITOR
public static NullFilterVisitor BOUNDS_VISITOR
ExtractBoundsFilterVisitor
protected ExtractBoundsFilterVisitor()
- This FilterVisitor is stateless - use ExtractBoundsFilterVisitor.BOUNDS_VISITOR.
You may also subclass in order to reuse this functionality in your own
FilterVisitor implementation.
visit
public java.lang.Object visit(org.opengis.filter.ExcludeFilter filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.IncludeFilter filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.BBOX filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.Literal expression,
java.lang.Object data)
- Please note we are only visiting literals involved in spatial operations.
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
- Parameters:
literal,
- hopefully a Geometry or Envelopedata
- Incoming BoundingBox (or Envelope or CRS)
- Returns:
- ReferencedEnvelope updated to reflect literal
visit
public java.lang.Object visit(org.opengis.filter.And filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.Not filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.Or filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Beyond filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Contains filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Crosses filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Disjoint filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.DWithin filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Equals filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Intersects filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Overlaps filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Touches filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.spatial.Within filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.Add expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.Divide expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.Function expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.Id filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.Multiply expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.NilExpression expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsBetween filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsEqualTo filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsGreaterThan filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsGreaterThanOrEqualTo filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsLessThan filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsLessThanOrEqualTo filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsLike filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsNotEqualTo filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.PropertyIsNull filter,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.PropertyName expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visit
public java.lang.Object visit(org.opengis.filter.expression.Subtract expression,
java.lang.Object data)
- Specified by:
visit
in interface org.opengis.filter.expression.ExpressionVisitor
- Overrides:
visit
in class NullFilterVisitor
visitNullFilter
public java.lang.Object visitNullFilter(java.lang.Object data)
- Specified by:
visitNullFilter
in interface org.opengis.filter.FilterVisitor
- Overrides:
visitNullFilter
in class NullFilterVisitor
Copyright © 1996-2010 Geotools. All Rights Reserved.