rdf4j-postgis  Version 0.1.0.0
PointInsideCircle Class Reference

Returns true if a point is found within the bounds of a given circle defintion. More...

Inheritance diagram for PointInsideCircle:
Collaboration diagram for PointInsideCircle:

Public Member Functions

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

Protected Member Functions

boolean relation (Geometry geom, Double centerx, Double centery, Double radius)
 

Detailed Description

Returns true if a point is found within the bounds of a given circle defintion.

Member Function Documentation

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
inherited
16  {
17  if (args.length != 4) {
18  throw new ValueExprEvaluationException(getURI() + " requires exactly 3 arguments, got " + args.length);
19  }
20 
21  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
22  Double value=Double.valueOf(args[1].stringValue());
23  Double value2=Double.valueOf(args[2].stringValue());
24  Double value3=Double.valueOf(args[3].stringValue());
25  if(l instanceof VectorLiteral) {
26  Geometry geom=((VectorLiteral)l).read(args[0].stringValue());
27  Boolean result = relation(geom,value,value2,value3);
28  return valueFactory.createLiteral(result);
29  }
30  throw new ValueExprEvaluationException("Argument given is not a geometry literal");
31  }
abstract boolean relation(Geometry geom, Double value, Double value2, Double value3)

References LiteralRegistry.getLiteral(), and GeometricModifierDoubleDoubleDoubleFunction.relation().

Referenced by PointInsideCircleTest.testPointInsideCircleFalse(), and PointInsideCircleTest.testPointInsideCircleTrue().

◆ getURI()

String getURI ( )
16  {
17  return POSTGIS.st_pointInsideCircle.stringValue();
18  }

References POSTGIS.st_pointInsideCircle.

◆ relation()

boolean relation ( Geometry  geom,
Double  centerx,
Double  centery,
Double  radius 
)
protected

Reimplemented from GeometricModifierDoubleDoubleDoubleFunction.

21  {
22  if("POINT".equals(geom.getGeometryType().toUpperCase())){
23  GeometricShapeFactory shapeFactory = new GeometricShapeFactory();
24  shapeFactory.setNumPoints(32);
25  shapeFactory.setCentre(new Coordinate(centerx, centery));
26  shapeFactory.setSize(radius * 2);
27  Polygon circle=shapeFactory.createCircle();
28  return circle.contains(geom);
29  }
30  return false;
31  }