|
From: <svn...@os...> - 2012-01-15 18:26:08
|
Author: aaime
Date: 2012-01-15 10:26:02 -0800 (Sun, 15 Jan 2012)
New Revision: 38483
Modified:
trunk/modules/library/main/src/main/java/org/geotools/filter/FilterDOMParser.java
trunk/modules/library/main/src/main/java/org/geotools/filter/GeometryFilterImpl.java
trunk/modules/library/main/src/test/java/org/geotools/filter/DOMParserTest.java
Log:
[GEOT-4004] FilterDomParser handles Crosses as Touches (patch by Jan De Moerloose)
Modified: trunk/modules/library/main/src/main/java/org/geotools/filter/FilterDOMParser.java
===================================================================
--- trunk/modules/library/main/src/main/java/org/geotools/filter/FilterDOMParser.java 2012-01-15 18:25:20 UTC (rev 38482)
+++ trunk/modules/library/main/src/main/java/org/geotools/filter/FilterDOMParser.java 2012-01-15 18:26:02 UTC (rev 38483)
@@ -469,7 +469,7 @@
return FILTER_FACT.touches( left, right );
case FilterType.GEOMETRY_CROSSES:
- return FILTER_FACT.touches( left, right );
+ return FILTER_FACT.crosses( left, right );
case FilterType.GEOMETRY_WITHIN:
return FILTER_FACT.within( left, right );
Modified: trunk/modules/library/main/src/main/java/org/geotools/filter/GeometryFilterImpl.java
===================================================================
--- trunk/modules/library/main/src/main/java/org/geotools/filter/GeometryFilterImpl.java 2012-01-15 18:25:20 UTC (rev 38482)
+++ trunk/modules/library/main/src/main/java/org/geotools/filter/GeometryFilterImpl.java 2012-01-15 18:26:02 UTC (rev 38483)
@@ -289,6 +289,8 @@
operator = " disjoint ";
} else if (filterType == GEOMETRY_INTERSECTS) {
operator = " intersects ";
+ } else if (filterType == GEOMETRY_TOUCHES) {
+ operator = " touches ";
} else if (filterType == GEOMETRY_CROSSES) {
operator = " crosses ";
} else if (filterType == GEOMETRY_WITHIN) {
Modified: trunk/modules/library/main/src/test/java/org/geotools/filter/DOMParserTest.java
===================================================================
--- trunk/modules/library/main/src/test/java/org/geotools/filter/DOMParserTest.java 2012-01-15 18:25:20 UTC (rev 38482)
+++ trunk/modules/library/main/src/test/java/org/geotools/filter/DOMParserTest.java 2012-01-15 18:26:02 UTC (rev 38483)
@@ -34,6 +34,7 @@
import org.opengis.filter.expression.Literal;
import org.opengis.filter.expression.PropertyName;
import org.opengis.filter.spatial.Beyond;
+import org.opengis.filter.spatial.Crosses;
import org.opengis.filter.spatial.DWithin;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -42,6 +43,7 @@
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.Point;
/**
@@ -237,6 +239,15 @@
LOGGER.fine("parsed filter is " + test);
}
+ public void testCrosses() throws Exception {
+ Filter test = parseDocument("crosses.xml");
+ assertTrue(test instanceof Crosses);
+ Crosses cr = (Crosses) test;
+ assertEquals("the_geom", ((PropertyName) cr.getExpression1()).getPropertyName());
+ assertTrue(((Literal) cr.getExpression2()).getValue() instanceof LineString);
+ LOGGER.fine("parsed filter is " + test);
+ }
+
public void test28() throws Exception {
FidFilter filter = (FidFilter) parseDocumentFirst("test28.xml");
String[] fids = filter.getFids();
|