Allow filters in WFST for multiple geometry columns. r=bartvde (closes #3370)
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user