Allow filters in WFST for multiple geometry columns. r=bartvde (closes #3370)

This commit is contained in:
ahocevar
2011-10-06 18:02:27 -04:00
parent 00e2e1bd59
commit 0afb5207e2
2 changed files with 24 additions and 2 deletions
+2 -2
View File
@@ -432,8 +432,8 @@ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
this.setFilterProperty(filter.filters[i]); this.setFilterProperty(filter.filters[i]);
} }
} else { } else {
if(filter instanceof OpenLayers.Filter.Spatial) { if(filter instanceof OpenLayers.Filter.Spatial && !filter.property) {
// got a spatial filter, set its property // got a spatial filter without property, so set it
filter.property = this.geometryName; filter.property = this.geometryName;
} }
} }
+22
View File
@@ -134,6 +134,28 @@
} }
} }
function test_setFilterProperty(t) {
t.plan(2);
var format = new OpenLayers.Format.WFST({
geometryName: "foo"
});
var filter = new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Logical.AND,
filters: [new OpenLayers.Filter.Spatial({
type: OpenLayers.Filter.Spatial.BBOX,
value: new OpenLayers.Bounds(1,2,3,4)
}), new OpenLayers.Filter.Spatial({
type: OpenLayers.Filter.Spatial.DWITHIN,
property: "bar",
value: new OpenLayers.Geometry.Point(1,2),
distance: 10
})]
});
format.setFilterProperty(filter);
t.eq(filter.filters[0].property, "foo", "property set if not set on filter");
t.eq(filter.filters[1].property, "bar", "property not set if set on filter");
}
function test_update_null_geometry(t) { function test_update_null_geometry(t) {
var format = new OpenLayers.Format.WFST({ var format = new OpenLayers.Format.WFST({
featureNS: "http://www.openplans.org/topp", featureNS: "http://www.openplans.org/topp",