Is it possible, and if so how, to use multiple logical filters in a wfs request?
For example I have a attribute, type_id that should be 1, 2 or 3.
var wfsTypeFilters = [ new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.EQUAL_TO, property: "type_id", value: 1 }), new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.EQUAL_TO, property: "type_id", value: 2 }), new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.EQUAL_TO, property: "type_id", value: 3 })];And then I have an attribute called name that should not be empty
var wfsNameIsNotNullFilter = [ new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO, property: "type_id", value :"" })]; After thtis I tried to create two different logical filters. And when combining them I get error:Uncaught Filter writing not supported for rule type: undefined
var parent_type_filter = new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.OR, filters: wfsTypeFilters});var parent_filter = new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.AND, filters: [parent_type_filter, wfsNameIsNotNullFilter]});If I would have written a sql query this would have been easy by using parentheses
WHERE (type_id = 1 OR type_id = 2 OR type_id = 3 ) AND (name != "")BrMike
أكثر...
For example I have a attribute, type_id that should be 1, 2 or 3.
var wfsTypeFilters = [ new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.EQUAL_TO, property: "type_id", value: 1 }), new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.EQUAL_TO, property: "type_id", value: 2 }), new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.EQUAL_TO, property: "type_id", value: 3 })];And then I have an attribute called name that should not be empty
var wfsNameIsNotNullFilter = [ new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO, property: "type_id", value :"" })]; After thtis I tried to create two different logical filters. And when combining them I get error:Uncaught Filter writing not supported for rule type: undefined
var parent_type_filter = new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.OR, filters: wfsTypeFilters});var parent_filter = new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.AND, filters: [parent_type_filter, wfsNameIsNotNullFilter]});If I would have written a sql query this would have been easy by using parentheses
WHERE (type_id = 1 OR type_id = 2 OR type_id = 3 ) AND (name != "")BrMike
أكثر...