【发布时间】:2013-12-06 13:02:49
【问题描述】:
我一直在使用this CQL 过滤器示例,成功。 但是,我想进一步开发它,第一个目标是允许用户选择要过滤的层。为此,我在列出所有可用图层的 html 表单上添加了另一个字段。 现在的问题是:如何将该字符串用作 CQL 过滤函数的变量? 我的代码如下所示:
function updateFilter() {
var cql = document.getElementById("cql");
// use a CQL parser for easy filter Validation
var format = new OpenLayers.Format.CQL();
//if filter exists, remove it
//This will also be useful when empty filter is present
if(Layer_to_Query.params.CQL_FILTER){
delete Layer_to_Query.params.CQL_FILTER;
}
var filter;
try {
filter = format.read(cql.value); //we are just checking if we can parse it
} catch (err) {
if(cql.value!=""){ //no need to give alert when filter is empty
alert("Filter cannot parsed");
}
}
if (filter) {
Layer_to_Query.mergeNewParams({'CQL_FILTER':cql.value}) //add the cql filter to the Layer
}
//redraw the layer
Layer_to_Query.redraw({force:true});
return false;
}
那么,关于如何在函数上将表单层名称作为 Layer_to_Query 传递的任何想法? 提前致谢!
【问题讨论】:
标签: openlayers geoserver