过滤函数参考
https://docs.geoserver.org/stable/en/user/filter/function_reference.html#filter-function-reference
CQL_Filter
https://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html
filterToString()
/**
* 将 Filter 对象编码为 xml 字符串,可在 WMS 的 GET 请求中作为 "FILTER" 查询参数使用
* @param {import('ol/format/filter/Filter').default} filter
* @returns
*/
function filterToString(filter) {
var featureRequest = new WFS().writeGetFeature({
featureTypes: ['required'],
filter,
});
var fr = new XMLSerializer().serializeToString(featureRequest);
// console.log('WFS查询请求');
// console.log(fr);
var xml = new DOMParser().parseFromString(fr, 'text/xml');
var filter = xml.getElementsByTagName('Filter')[0];
var str_filter = filter?.outerHTML;
return str_filter;
}
var query_string_of_filter = filterToString(Filter.like('name', 'test'));
由于 writeGetFeature()
返回的是 XML 节点 Node
,所以可以简化为:
/**
* 将 Filter 对象编码为 xml 字符串,可在 WMS 的 GET 请求中作为 "FILTER" 查询参数使用
* @param {import('ol/format/filter/Filter').default} filter
* @returns
*/
function filterToString(filter) {
return new WFS().writeGetFeature({
featureTypes: ['required'],
filter,
}).getElementsByTagName('Filter')[0]?.outerHTML;
}