rdf4j-postgis  Version 0.1.0.0
BBOXAbove Class Reference

Returns true if the bounding box of geometry 1 is above the boundingbox of geometry 2. More...

Inheritance diagram for BBOXAbove:
Collaboration diagram for BBOXAbove:

Public Member Functions

String getURI ()
 
Value evaluate (ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
 

Protected Member Functions

boolean relation (Geometry geom, Geometry geom2)
 

Detailed Description

Returns true if the bounding box of geometry 1 is above the boundingbox of geometry 2.

Member Function Documentation

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
inherited
17  {
18  if (args.length != 2) {
19  throw new ValueExprEvaluationException(getURI() + " requires exactly 2 arguments, got " + args.length);
20  }
21  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
22  LiteralType l2=LiteralRegistry.getLiteral(((Literal)args[1]).getDatatype().toString());
23  if(l instanceof VectorLiteral && l2 instanceof VectorLiteral) {
24  Geometry geom=((VectorLiteral)l).read(args[0].stringValue());
25  Geometry geom2=((VectorLiteral)l2).read(args[1].stringValue());
26  Geometry transformed=LiteralUtils.transform(geom2, geom);
27  boolean result = relation(geom,transformed);
28  return valueFactory.createLiteral(result);
29  }
30  throw new ValueExprEvaluationException("Arguments given are not a geometry literal");
31 
32  }

References LiteralRegistry.getLiteral(), GeometricRelationBinaryFunction.relation(), and LiteralUtils.transform().

Referenced by BBOXAboveTest.testBBOXAbove(), BBOXAboveTest.testBBOXAbove1(), BBOXBelowTest.testBBOXBelow(), BBOXBelowTest.testBBOXBelow1(), BBOXContainsTest.testBBOXContainsFalse(), BBOXContainsTest.testBBOXContainsTrue(), BBOXEqualsTest.testBBOXEqualsFalse(), BBOXEqualsTest.testBBOXEqualsTrue(), BBOXIntersectsTest.testBBOXIntersectsFalse(), BBOXIntersectsTest.testBBOXIntersectsTrue(), BBOXIsContainedByTest.testBBOXIsContainedByFalse(), BBOXIsContainedByTest.testBBOXIsContainedByTrue(), BBOXLeftOfTest.testBBOXLeftOf(), BBOXLeftOfTest.testBBOXLeftOf1(), BBOXOverlapsLeftTest.testBBOXLeftOfFalse(), BBOXOverlapsLeftTest.testBBOXLeftOfTrue(), BBOXOverlapsRightTest.testBBOXRightOf(), BBOXRightOfTest.testBBOXRightOf(), BBOXOverlapsRightTest.testBBOXRightOf1(), BBOXRightOfTest.testBBOXRightOf1(), EqualTypeTest.testEqual(), EqualNormTest.testEqualNormFalse(), EqualNormTest.testEqualNormTrue(), EqualSRSTest.testEqualSRS(), EqualTopoTest.testEqualTopoFalse(), EqualTopoTest.testEqualTopoTrue(), EqualSRSTest.testNoSRS(), EqualTypeTest.testNotEqual(), EqualSRSTest.testNotEqualSRS(), OrderingEqualsTest.testOrderingEquals1(), OrderingEqualsTest.testOrderingEquals2(), and OrderingEqualsTest.testOrderingEquals3().

◆ getURI()

String getURI ( )
15  {
16  return POSTGIS.st_bboxabove.stringValue();
17  }

References POSTGIS.st_bboxabove.

◆ relation()

boolean relation ( Geometry  geom,
Geometry  geom2 
)
protected

Reimplemented from GeometricRelationBinaryFunction.

20  {
21  Geometry transformed=LiteralUtils.transform(geom2, geom);
22  if(geom.getEnvelope().overlaps(transformed.getEnvelope())) {
23  return true;
24  }
25  if(geom.getEnvelopeInternal().getMaxY()>transformed.getEnvelopeInternal().getMinY()) {
26  return true;
27  }
28  return false;
29  }

References LiteralUtils.transform().