[OpenLayers-Users] Help to create FeatureId filter &
OpenLayers.Filter.Logical.NOT
Ivan Grcic
ivan.grcic at geofoto.hr
Thu Dec 10 08:10:07 EST 2009
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
More information about the Users
mailing list