@Override public Object visit(BBOX filter, Object extraData) { // rename if necessary Expression e1 = filter.getExpression1(); if (e1 instanceof PropertyName) { PropertyName pname = (PropertyName) e1; String name = pname.getPropertyName(); if (name != null && name.equals(source)) { e1 = ff.property(target); } } // duplicate preserving fast bbox filters if (filter instanceof FastBBOX && e1 instanceof PropertyName) { FastBBOX fbox = (FastBBOX) filter; return new FastBBOX((PropertyName) e1, fbox.getEnvelope(), getFactory(extraData)); } else { double minx = filter.getMinX(); double miny = filter.getMinY(); double maxx = filter.getMaxX(); double maxy = filter.getMaxY(); String srs = filter.getSRS(); return getFactory(extraData).bbox(e1, minx, miny, maxx, maxy, srs); } } }
public Object accept(FilterVisitor visitor, Object context) { Object result = visitor.visit(this, context); if (!(result instanceof BBOX)) return result; BBOX clone = (BBOX) result; if (clone.getExpression1().equals(getExpression1()) && clone.getExpression2().equals(getExpression2())) return new FastBBOX(property, envelope, factory); return result; }
public boolean evaluate(SimpleFeature feature) { return evaluate((Object) feature); }
public org.geotools.filter.Expression getRightGeometry() { return (org.geotools.filter.Expression) getExpression2(); }
public org.geotools.filter.Expression getLeftGeometry() { return (org.geotools.filter.Expression) getExpression1(); }
public void accept(org.geotools.filter.FilterVisitor visitor) { accept(new FilterVisitorFilterWrapper(visitor),null); }
public boolean contains(SimpleFeature feature) { return evaluate((Object) feature); }
public Object accept(FilterVisitor visitor, Object context) { Object result = visitor.visit(this, context); if(!(result instanceof BBOX)) return result; BBOX clone = (BBOX) result; if(clone.getExpression1().equals(getExpression1()) && clone.getExpression2().equals(getExpression2())) return new FastBBOX(property, envelope, factory); return result; }
@Override public Object visit(BBOX filter, Object extraData) { // rename if necessary Expression e1 = filter.getExpression1(); if(e1 instanceof PropertyName) { PropertyName pname = (PropertyName) e1; String name = pname.getPropertyName(); if(name != null && name.equals(source)) { e1 = ff.property(target); } } // duplicate preserving fast bbox filters if(filter instanceof FastBBOX && e1 instanceof PropertyName) { FastBBOX fbox = (FastBBOX) filter; return new FastBBOX((PropertyName) e1, fbox.getEnvelope(), getFactory(extraData)); } else { double minx=filter.getMinX(); double miny=filter.getMinY(); double maxx=filter.getMaxX(); double maxy=filter.getMaxY(); String srs=filter.getSRS(); return getFactory(extraData).bbox(e1, minx, miny, maxx, maxy, srs); } }
.getFilter() .accept(ExtractBoundsFilterVisitor.BOUNDS_VISITOR, null); Filter bbox = new FastBBOX(filterFactory.property(""), bounds, filterFactory); optimizedQuery = new Query(null, bbox); optimizedQuery.setHints(layerQuery.getHints());
Filter bbox = new FastBBOX(filterFactory.property(""), bounds, filterFactory); optimizedQuery = new Query(null, bbox); optimizedQuery.setHints(renderingQuery.getHints());