break; case OVERLAPS: geometry = ( (Overlaps) operator ).getGeometry(); break; case TOUCHES:
break; case OVERLAPS: propertyName = ( (Overlaps) operator ).getPropName(); geometry = ( (Overlaps) operator ).getGeometry(); break; case TOUCHES:
@Override public <T> boolean evaluate( T obj, XPathEvaluator<T> xpathEvaluator ) throws FilterEvaluationException { for ( TypedObjectNode paramValue : propName.evaluate( obj, xpathEvaluator ) ) { Geometry geom = checkGeometryOrNull( paramValue ); if ( geom != null ) { Geometry transformedLiteral = getCompatibleGeometry( geom, geometry ); return geom.overlaps( transformedLiteral ); } } return false; }
case OVERLAPS: Overlaps overlaps = (Overlaps) op; return new Overlaps( copy( overlaps.getPropName() ), overlaps.getGeometry() ); case TOUCHES: Touches touches = (Touches) op;
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 Overlaps( param1, param2 ); break;
return new Intersects( (Expression) os[0], (Geometry) os[1] ); case OVERLAPS: return new Overlaps( (Expression) os[0], (Geometry) os[1] ); case TOUCHES: return new Touches( (Expression) os[0], (Geometry) os[1] );
Overlaps overlaps = (Overlaps) op; builder.add( propNameExpr ).add( ".STOverlaps(" ); builder.add( toProtoSQL( overlaps.getGeometry(), storageCRS, srid ) ); builder.add( ")=1" ); break;
spatialOperator = new Overlaps( param1, param2 ); break;
builder.add( toProtoSQL( overlaps.getGeometry(), storageCRS, srid ) ); builder.add( ")" ); break;
spatialOperator = new Overlaps( param1, param2 ); break;