use of org.apache.jena.geosparql.spatial.SearchEnvelope in project jena by apache.
the class GenericSpatialBoxPropertyFunctionTest method testExtractObjectArguments_3args_fail.
/**
* Test of extractObjectArguments method, of class
* GenericSpatialBoxPropertyFunction.
*/
@Test(expected = ExprEvalException.class)
public void testExtractObjectArguments_3args_fail() {
GenericSpatialBoxPropertyFunction instance = new WithinBoxPF();
Node predicate = NodeFactory.createURI(SpatialExtension.WITHIN_BOX_PROP);
// Geometry and Envelope parameters
float latMin = 0;
float lonMin = 1;
float latMax = 2;
float lonMax = 3;
int limit = 10;
List<Node> objectNodes = Arrays.asList(NodeValue.makeFloat(latMin).asNode(), NodeValue.makeFloat(lonMin).asNode(), NodeValue.makeFloat(latMax).asNode());
PropFuncArg object = new PropFuncArg(objectNodes);
// Function arguments
Literal geometry = ConvertLatLonBox.toLiteral(latMin, lonMin, latMax, lonMax);
GeometryWrapper geometryWrapper = GeometryWrapper.extract(geometry);
SearchEnvelope searchEnvelope = SearchEnvelope.build(geometryWrapper, SpatialIndexTestData.WGS_84_SRS_INFO);
SpatialArguments expResult = new SpatialArguments(limit, geometryWrapper, searchEnvelope);
SpatialArguments result = instance.extractObjectArguments(predicate, object, SpatialIndexTestData.WGS_84_SRS_INFO);
// assertEquals(expResult, result);
}
use of org.apache.jena.geosparql.spatial.SearchEnvelope in project jena by apache.
the class GenericSpatialPropertyFunction method checkUnbound.
private QueryIterator checkUnbound(Binding binding, ExecutionContext execCxt, Node subject, int limit) {
QueryIterConcat queryIterConcat = new QueryIterConcat(execCxt);
if (limit < 0) {
limit = Integer.MAX_VALUE;
}
// Find all Features in the spatial index which are within the rough search envelope.
SearchEnvelope searchEnvelope = spatialArguments.searchEnvelope;
HashSet<Resource> features = searchEnvelope.check(spatialIndex);
Var subjectVar = Var.alloc(subject.getName());
int count = 0;
for (Resource feature : features) {
boolean isMatched;
if (requireSecondFilter()) {
// Check all the GeometryLiterals of the Feature in a fine-grained test.
isMatched = checkBound(execCxt, feature.asNode());
} else {
// Second filter is not required so accept the case.
isMatched = true;
}
if (isMatched) {
// Exit on limit of zero.
count++;
if (count > limit) {
break;
}
QueryIterator queryIter = QueryIterSingleton.create(binding, subjectVar, feature.asNode(), execCxt);
queryIterConcat.add(queryIter);
}
}
return queryIterConcat;
}
use of org.apache.jena.geosparql.spatial.SearchEnvelope in project jena by apache.
the class EastGeomPFTest method testBuildSearchEnvelope.
/**
* Test of buildSearchEnvelope method, of class EastGeomPF.
*/
@Test
public void testBuildSearchEnvelope() {
GeometryWrapper geometryWrapper = SpatialIndexTestData.PARIS_GEOMETRY_WRAPPER;
EastGeomPF instance = new EastGeomPF();
SearchEnvelope expResult = SearchEnvelope.build(geometryWrapper, SpatialIndexTestData.WGS_84_SRS_INFO, CardinalDirection.EAST);
SearchEnvelope result = instance.buildSearchEnvelope(geometryWrapper, SpatialIndexTestData.WGS_84_SRS_INFO);
assertEquals(expResult, result);
}
use of org.apache.jena.geosparql.spatial.SearchEnvelope in project jena by apache.
the class EastGeomPFTest method testCheckSearchEnvelope_no_wrap.
/**
* Test of checkSearchEnvelope method, of class EastGeomPF.
*/
@Test
public void testCheckSearchEnvelope_no_wrap() {
SpatialIndex spatialIndex = SpatialIndexTestData.createTestIndex();
// Search Envelope
GeometryWrapper geometryWrapper = SpatialIndexTestData.HONOLULU_GEOMETRY_WRAPPER;
EastGeomPF instance = new EastGeomPF();
// Needed to initialise the search.
SearchEnvelope searchEnvelope = instance.buildSearchEnvelope(geometryWrapper, SpatialIndexTestData.WGS_84_SRS_INFO);
HashSet<Resource> expResult = new HashSet<>(Arrays.asList(SpatialIndexTestData.LONDON_FEATURE, SpatialIndexTestData.HONOLULU_FEATURE, SpatialIndexTestData.NEW_YORK_FEATURE));
HashSet<Resource> result = searchEnvelope.check(spatialIndex);
assertEquals(expResult, result);
}
use of org.apache.jena.geosparql.spatial.SearchEnvelope in project jena by apache.
the class NorthGeomPFTest method testBuildSearchEnvelope.
/**
* Test of buildSearchEnvelope method, of class NorthGeomPF.
*/
@Test
public void testBuildSearchEnvelope() {
GeometryWrapper geometryWrapper = SpatialIndexTestData.PARIS_GEOMETRY_WRAPPER;
NorthGeomPF instance = new NorthGeomPF();
SearchEnvelope expResult = SearchEnvelope.build(geometryWrapper, SpatialIndexTestData.WGS_84_SRS_INFO, CardinalDirection.NORTH);
SearchEnvelope result = instance.buildSearchEnvelope(geometryWrapper, SpatialIndexTestData.WGS_84_SRS_INFO);
assertEquals(expResult, result);
}
Aggregations