private static BBOX merge( BBOX bbox1, BBOX bbox2 ) { // TODO handle different SRS Envelope env = bbox1.getBoundingBox().merge( bbox2.getBoundingBox() ); Expression expr = bbox1.getParam1(); if ( expr == null || !expr.equals( bbox2.getParam1() ) ) { expr = null; } return new BBOX( expr, env ); }
try { if ( looseBBox != null ) { final OperatorFilter bboxFilter = new OperatorFilter( new BBOX( looseBBox ) ); blobWb = getWhereBuilderBlob( bboxFilter, conn );
BBOX bboxOperator = new BBOX( propName, bbox, allowFalsePositives ); if ( filter == null ) { bboxFilter = new OperatorFilter( bboxOperator );
private static BBOX extractBBox( SpatialOperator oper ) { SubType type = oper.getSubType(); switch ( type ) { case BBOX: return (BBOX) oper; case CONTAINS: // Oracle does not like zero-extent bboxes if ( !( ( (Contains) oper ).getGeometry() instanceof Point ) ) return new BBOX( ( (Contains) oper ).getParam1(), ( (Contains) oper ).getGeometry().getEnvelope() ); return null; case CROSSES: return new BBOX( ( (Crosses) oper ).getParam1(), ( (Crosses) oper ).getGeometry().getEnvelope() ); case DWITHIN: // TOOD use enlarged bbox return null; case EQUALS: return new BBOX( ( (Equals) oper ).getParam1(), ( (Equals) oper ).getGeometry().getEnvelope() ); case INTERSECTS: return new BBOX( ( (Intersects) oper ).getParam1(), ( (Intersects) oper ).getGeometry().getEnvelope() ); case OVERLAPS: return new BBOX( ( (Overlaps) oper ).getParam1(), ( (Overlaps) oper ).getGeometry().getEnvelope() ); case WITHIN: return new BBOX( ( (Within) oper ).getParam1(), ( (Within) oper ).getGeometry().getEnvelope() ); default: { return null; } } }
spatialOperator = new BBOX( param1, (Envelope) param2 ); break;
return new BBOX( (Expression) os[0], (Envelope) os[1] ); case BEYOND: Beyond b = (Beyond) o;
spatialOperator = new BBOX( param1, param2 ); break;
spatialOperator = new BBOX( param1, param2 ); break;
BBOX bboxOperator = new BBOX( bbox ); filter = new OperatorFilter( bboxOperator ); } else if ( wfsQuery instanceof FeatureIdQuery ) {
Envelope newEnv = gf.createEnvelope( env.getMin().get0(), env.getMin().get1(), env.getMax().get0(), env.getMax().get0(), env.getCoordinateSystem() ); return new BBOX( copy( bbox.getPropName() ), newEnv ); case BEYOND: Beyond beyond = (Beyond) op;