OpenLayers WFS with OpenLayers.StrategyFilter and Filter Logical
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js"></script>
<body onload="init()">
<p>OpenLayers WFS with OpenLayers.StrategyFilter and Filter Logical
<br/>OpenLayers.Filter.Comparison, OpenLayers.Filter.Logical, OpenLayers.Filter.Comparison.IS_NULL</p>
<div id="button1">Click to delete filter and reload wfs layer</div>Features Count: <span id="before">xx</span>
<br />
<div id="map"></div>
</body>
CSS
#map {
width: 100%;
height: 400px;
}
#button1 {
width:400px;
background: yellow;
border:1px solid red;
}
JavaScript
var map;
var layer, wms, refresh, parent_type_filter, filter_featureclass;
function init() {
map = new OpenLayers.Map('map');
wms = new OpenLayers.Layer.WMS(
"OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {
layers: 'basic'
});
var attribute = "MAX_POP50";
var filter_zero = new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: attribute,
value: 0
});
var filter_null = new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.IS_NULL,
property: attribute
});
var filter_not_null = new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Logical.NOT
});
filter_not_null.filters.push(filter_null);
parent_type_filter = new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Logical.OR,
filters: [filter_zero, filter_featureclass]
});
var wfsNameIsNotNullFilter = new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
property: attribute,
value: ""
});
var wfsTypeFilters = [
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "NAME",
value: 'Nowra'
}),
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "NAME",
value: 'Ulladulla'
}),
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "NAME",
value: 'Batemans Bay'
})];
var parent_type_filter = new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Logical.OR,
filters: wfsTypeFilters
});
refresh = new OpenLayers.Strategy.Refresh({
force: true,
active: true
});
layer = new OpenLayers.Layer.Vector("WFS", {
strategies: [new OpenLayers.Strategy.BBOX(), refresh],
protocol: new...