This is OpenLayers 2 code I'm upgrading to OpenLayers 3 (OL3).
A set of filters (for example fromDate and toDate to for query) are created and inserted. How can I do this in OpenLayers 3?
I have a set of parameters which the user changes before the query. Filter is not a part of OL3, so how can I create such request to GeoServer with my parameters? Can anyone provide an example of OL3 syntax?
// create filter
var dateFilter = new OL.Filter.Comparison({
type : OL.Filter.Comparison.BETWEEN,
property : "stdate",
lowerBoundary : date.fromDate,
upperBoundary : date.toDate
});
var filter = ns.query.constructFilterString(filterBbox, date, attr);
This is where the request is created.
// GetFeature request with filter, callback handles result from server
ns.WebFeatureService.getFeature({
TYPENAME : "floats",
FILTER : filter
}, displayFeatures);
// fires a GetFeature WFS request to server
function getFeature(callback) {
// some default parameters that will be set automatically if not
var parameters = {
REQUEST : "GetFeature",
SERVICE : "WFS",
VERSION : "1.0",
OUTPUTFORMAT : "json",
TYPENAME : "floats",
FILTER : filter
};
asyncGetRequest(parameters, callback);
}
Best Answer
Since OL3 does not have filter I used CQL filter. I exchanged FILTER : filter with CQL_FILTER : filter in the parameterlist. See http://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html
The differense is that CQL Filter has to be build in SQL syntax before added to the parameterlist.
Ex: