Hi, I need to make a filter that combines Layers.Filter.Logical.NOT with FeatureId. Filter structure should be like:
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> <And> <Not><ogc:FeatureId fid="Feature.1"/></Not> <Not><ogc:FeatureId fid="Feature.2"/></Not> </And> ... ... </Not> </ogc:Filter> I tried creating one like this: var filter_1_1 = new OpenLayers.Format.Filter({version: "1.1.0"}); var xml = new OpenLayers.Format.XML(); var featIdsFilter = []; //iterate trough features and make arrays of <Not><ogc:FeatureId fid="Feature.1"/></Not> filters for(var i=0, len=wfsLayer.features.length; i<len; i++){ featIdsFilter.push( new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.NOT, filters: [new OpenLayers.Filter.FeatureId({fids: [wfsLayer.features[i].fid]})] }) ); } //combines previous array with AND filter var filterObj = new OpenLayers.Filter.Logical({ type: OpenLayers.Filter.Logical.AND, filters: featIdsFilter }); try{ var filter = xml.write(filter_1_1.write(filterObj)); } catch(err) { alert(err); } filterObj gets created but when I try to write filter I get error: Filter writing not supported for rule type: undefined I used FIlters a lot before but for some reason I cant make Logical.NOT to work. Apparently im not using OpenLayers.Filter.Logical.NOT in the right way... Anybody had case like this? Thanx, Cheers -- Ivan Grcic _______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
