rdf4j-postgis  Version 0.1.0.0
Intersection Class Reference
Inheritance diagram for Intersection:
Collaboration diagram for Intersection:

Public Member Functions

String getURI ()
 
Geometry relation (Value v1, Value v2)
 
Value evaluate (ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
 

Static Public Member Functions

static Boolean vectorOrRaster (Literal lit)
 
static Literal getLiteral (Function func, Value v) throws ValueExprEvaluationException
 

Static Public Attributes

static Set< String > rasterLiteralURIs =new TreeSet<String>()
 
static Set< String > vectorLiteralURIs =new TreeSet<String>()
 

Member Function Documentation

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
inherited
17  {
18  // TODO Auto-generated method stub
19  return null;
20  }

◆ getLiteral()

static Literal getLiteral ( Function  func,
Value  v 
) throws ValueExprEvaluationException
staticinherited
38  {
39  if (!(v instanceof Literal)) {
40  throw new ValueExprEvaluationException("Invalid argument for " + func.getURI() + ": " + v);
41  }
42  Literal lit = (Literal) v;
43  return lit;
44  }

Referenced by Intersection.relation().

◆ getURI()

String getURI ( )
17  {
18  return POSTGIS.st_rast_Intersection.stringValue();
19  }

References POSTGIS.st_rast_Intersection.

◆ relation()

Geometry relation ( Value  v1,
Value  v2 
)

Reimplemented from RasterVectorRelationFunction.

22  {
23  Literal lit1=getLiteral(this, v1);
24  Literal lit2=getLiteral(this, v2);
25  Boolean type=vectorOrRaster(getLiteral(this, v1));
26  Boolean type2=vectorOrRaster(getLiteral(this, v2));
27  if(type==null || type2==null) {
28  return null;
29  }else if(type && type2) {
30  VectorLiteral vec1=(VectorLiteral) LiteralRegistry.getLiteral(lit1.getDatatype().toString());
31  VectorLiteral vec2=(VectorLiteral) LiteralRegistry.getLiteral(lit2.getDatatype().toString());
32  return vec1.read(v1.stringValue()).intersection(vec2.read(v2.stringValue()));
33  }else if(type && !type2) {
34  VectorLiteral vec1=(VectorLiteral) LiteralRegistry.getLiteral(lit1.getDatatype().toString());
35  RasterLiteral vec2=(RasterLiteral) LiteralRegistry.getLiteral(lit2.getDatatype().toString());
36  return vec1.read(v1.stringValue()).intersection(LiteralUtils.toGeometry(vec2.read(v2.stringValue()).getGridGeometry().getEnvelope()));
37  }else if(!type && type2) {
38  RasterLiteral vec1=(RasterLiteral) LiteralRegistry.getLiteral(lit1.getDatatype().toString());
39  VectorLiteral vec2=(VectorLiteral) LiteralRegistry.getLiteral(lit2.getDatatype().toString());
40  return LiteralUtils.toGeometry(((GridCoverage)vec1.read(v1.stringValue())).getGridGeometry().getEnvelope()).intersection(vec2.read(v2.stringValue()));
41  }else {
42  RasterLiteral vec1=(RasterLiteral) LiteralRegistry.getLiteral(lit1.getDatatype().toString());
43  RasterLiteral vec2=(RasterLiteral) LiteralRegistry.getLiteral(lit2.getDatatype().toString());
44  return LiteralUtils.toGeometry(((GridCoverage)vec1.read(v1.stringValue())).getGridGeometry().getEnvelope()).intersection(LiteralUtils.toGeometry(vec2.read(v2.stringValue()).getGridGeometry().getEnvelope()));
45  }
46  }
static Boolean vectorOrRaster(Literal lit)
Definition: RasterVectorRelationFunction.java:29
static Literal getLiteral(Function func, Value v)
Definition: RasterVectorRelationFunction.java:38

References RasterVectorRelationFunction.getLiteral(), LiteralRegistry.getLiteral(), RasterLiteral.read(), VectorLiteral.read(), LiteralUtils.toGeometry(), and RasterVectorRelationFunction.vectorOrRaster().

◆ vectorOrRaster()

static Boolean vectorOrRaster ( Literal  lit)
staticinherited
29  {
30  if(rasterLiteralURIs.contains(lit.getDatatype().toString())) {
31  return false;
32  }else if(vectorLiteralURIs.contains(lit.getDatatype().toString())) {
33  return true;
34  }
35  return null;
36  }
static Set< String > vectorLiteralURIs
Definition: RasterVectorRelationFunction.java:27
static Set< String > rasterLiteralURIs
Definition: RasterVectorRelationFunction.java:25

References RasterVectorRelationFunction.rasterLiteralURIs, and RasterVectorRelationFunction.vectorLiteralURIs.

Referenced by Intersection.relation().

Member Data Documentation

◆ rasterLiteralURIs

Set<String> rasterLiteralURIs =new TreeSet<String>()
staticinherited

◆ vectorLiteralURIs

Set<String> vectorLiteralURIs =new TreeSet<String>()
staticinherited