Changed SpatialRelation contains to within

This commit is contained in:
Chris Male 2012-10-25 15:36:02 +13:00 committed by Shay Banon
parent 23f7b0002a
commit 768b8b4d2b
4 changed files with 17 additions and 17 deletions

View File

@ -29,7 +29,7 @@ public enum ShapeRelation {
INTERSECTS("intersects"), INTERSECTS("intersects"),
DISJOINT("disjoint"), DISJOINT("disjoint"),
CONTAINS("contains"); WITHIN("within");
private final String relationName; private final String relationName;

View File

@ -77,8 +77,8 @@ public abstract class SpatialStrategy {
switch (relation) { switch (relation) {
case INTERSECTS: case INTERSECTS:
return createIntersectsFilter(shape); return createIntersectsFilter(shape);
case CONTAINS: case WITHIN:
return createContainsFilter(shape); return createWithinFilter(shape);
case DISJOINT: case DISJOINT:
return createDisjointFilter(shape); return createDisjointFilter(shape);
default: default:
@ -98,8 +98,8 @@ public abstract class SpatialStrategy {
switch (relation) { switch (relation) {
case INTERSECTS: case INTERSECTS:
return createIntersectsQuery(shape); return createIntersectsQuery(shape);
case CONTAINS: case WITHIN:
return createContainsQuery(shape); return createWithinQuery(shape);
case DISJOINT: case DISJOINT:
return createDisjointQuery(shape); return createDisjointQuery(shape);
default: default:
@ -151,7 +151,7 @@ public abstract class SpatialStrategy {
* @param shape Shape to find the contained Shapes of * @param shape Shape to find the contained Shapes of
* @return Filter for finding the contained indexed Shapes * @return Filter for finding the contained indexed Shapes
*/ */
public abstract Filter createContainsFilter(Shape shape); public abstract Filter createWithinFilter(Shape shape);
/** /**
* Creates a Query that will find all indexed Shapes that are properly * Creates a Query that will find all indexed Shapes that are properly
@ -161,7 +161,7 @@ public abstract class SpatialStrategy {
* @param shape Shape to find the contained Shapes of * @param shape Shape to find the contained Shapes of
* @return Query for finding the contained indexed Shapes * @return Query for finding the contained indexed Shapes
*/ */
public abstract Query createContainsQuery(Shape shape); public abstract Query createWithinQuery(Shape shape);
/** /**
* Returns the name of the field this Strategy applies to * Returns the name of the field this Strategy applies to

View File

@ -24,7 +24,7 @@ import java.util.List;
*/ */
public class TermQueryPrefixTreeStrategy extends SpatialStrategy { public class TermQueryPrefixTreeStrategy extends SpatialStrategy {
private static final double CONTAINS_BUFFER_DISTANCE = 0.5; private static final double WITHIN_BUFFER_DISTANCE = 0.5;
private static final BufferParameters BUFFER_PARAMETERS = new BufferParameters(3, BufferParameters.CAP_SQUARE); private static final BufferParameters BUFFER_PARAMETERS = new BufferParameters(3, BufferParameters.CAP_SQUARE);
/** /**
@ -113,11 +113,11 @@ public class TermQueryPrefixTreeStrategy extends SpatialStrategy {
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @Override
public Filter createContainsFilter(Shape shape) { public Filter createWithinFilter(Shape shape) {
Filter intersectsFilter = createIntersectsFilter(shape); Filter intersectsFilter = createIntersectsFilter(shape);
Geometry shapeGeometry = ShapeBuilder.toJTSGeometry(shape); Geometry shapeGeometry = ShapeBuilder.toJTSGeometry(shape);
Geometry buffer = BufferOp.bufferOp(shapeGeometry, CONTAINS_BUFFER_DISTANCE, BUFFER_PARAMETERS); Geometry buffer = BufferOp.bufferOp(shapeGeometry, WITHIN_BUFFER_DISTANCE, BUFFER_PARAMETERS);
Shape bufferedShape = new JtsGeometry(buffer.difference(shapeGeometry), GeoShapeConstants.SPATIAL_CONTEXT, true); Shape bufferedShape = new JtsGeometry(buffer.difference(shapeGeometry), GeoShapeConstants.SPATIAL_CONTEXT, true);
Filter bufferedFilter = createIntersectsFilter(bufferedShape); Filter bufferedFilter = createIntersectsFilter(bufferedShape);
@ -132,11 +132,11 @@ public class TermQueryPrefixTreeStrategy extends SpatialStrategy {
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @Override
public Query createContainsQuery(Shape shape) { public Query createWithinQuery(Shape shape) {
Query intersectsQuery = createIntersectsQuery(shape); Query intersectsQuery = createIntersectsQuery(shape);
Geometry shapeGeometry = ShapeBuilder.toJTSGeometry(shape); Geometry shapeGeometry = ShapeBuilder.toJTSGeometry(shape);
Geometry buffer = BufferOp.bufferOp(shapeGeometry, CONTAINS_BUFFER_DISTANCE, BUFFER_PARAMETERS); Geometry buffer = BufferOp.bufferOp(shapeGeometry, WITHIN_BUFFER_DISTANCE, BUFFER_PARAMETERS);
Shape bufferedShape = new JtsGeometry(buffer.difference(shapeGeometry), GeoShapeConstants.SPATIAL_CONTEXT, true); Shape bufferedShape = new JtsGeometry(buffer.difference(shapeGeometry), GeoShapeConstants.SPATIAL_CONTEXT, true);
Query bufferedQuery = createIntersectsQuery(bufferedShape); Query bufferedQuery = createIntersectsQuery(bufferedShape);

View File

@ -132,13 +132,13 @@ public class TermQueryPrefixTreeStrategyTests {
} }
@Test @Test
public void testContainsRelation() throws IOException { public void testWithinRelation() throws IOException {
Rectangle rectangle = newRectangle().topLeft(-45, 45).bottomRight(45, -45).build(); Rectangle rectangle = newRectangle().topLeft(-45, 45).bottomRight(45, -45).build();
Filter filter = STRATEGY.createContainsFilter(rectangle); Filter filter = STRATEGY.createWithinFilter(rectangle);
assertTopDocs(indexSearcher.search(new MatchAllDocsQuery(), filter, 10), "1"); assertTopDocs(indexSearcher.search(new MatchAllDocsQuery(), filter, 10), "1");
Query query = STRATEGY.createContainsQuery(rectangle); Query query = STRATEGY.createWithinQuery(rectangle);
assertTopDocs(indexSearcher.search(query, 10), "1"); assertTopDocs(indexSearcher.search(query, 10), "1");
Shape polygon = newPolygon() Shape polygon = newPolygon()
@ -148,10 +148,10 @@ public class TermQueryPrefixTreeStrategyTests {
.point(-45, -45) .point(-45, -45)
.point(-45, 45).build(); .point(-45, 45).build();
filter = STRATEGY.createContainsFilter(polygon); filter = STRATEGY.createWithinFilter(polygon);
assertTopDocs(indexSearcher.search(new MatchAllDocsQuery(), filter, 10), "1"); assertTopDocs(indexSearcher.search(new MatchAllDocsQuery(), filter, 10), "1");
query = STRATEGY.createContainsQuery(polygon); query = STRATEGY.createWithinQuery(polygon);
assertTopDocs(indexSearcher.search(query, 10), "1"); assertTopDocs(indexSearcher.search(query, 10), "1");
} }