Openlayers WMS层作为CQL过滤器上的变量?

Openlayers WMS层作为CQL过滤器上的变量?,openlayers,geoserver,Openlayers,Geoserver,我已经成功地使用了CQL过滤器示例。 然而,我想进一步开发它,第一个目标是允许用户选择要过滤的层。为此,我在html表单上添加了另一个字段,其中列出了所有可用层。 现在的问题是:如何使用该字符串作为CQL filter函数的变量? 我的代码如下所示: 函数更新过滤器{ var cql=document.getElementByIdcql; //使用CQL解析器进行简单的过滤器验证 var format=new OpenLayers.format.CQL; //如果存在过滤器,请将其卸下 //当存

我已经成功地使用了CQL过滤器示例。 然而,我想进一步开发它,第一个目标是允许用户选择要过滤的层。为此,我在html表单上添加了另一个字段,其中列出了所有可用层。 现在的问题是:如何使用该字符串作为CQL filter函数的变量? 我的代码如下所示:

函数更新过滤器{ var cql=document.getElementByIdcql; //使用CQL解析器进行简单的过滤器验证 var format=new OpenLayers.format.CQL; //如果存在过滤器,请将其卸下 //当存在空过滤器时,这也很有用 iLayer\u to\u Query.params.CQL\u过滤器{ 删除图层到查询参数CQL过滤器; } var滤波器; 试一试{ filter=format.readcql.value;//我们正在检查是否可以解析它 }犯错误{ ifcql.value!={//当筛选器为空时,无需发出警报 无法解析alertFilter; } } 中频滤波器{ Layer_to_Query.mergeNewParams{'CQL_FILTER':CQL.value}//将CQL过滤器添加到该层 } //重新绘制图层 重新绘制{force:true}; 返回false; } 那么,关于如何将表单层名称作为函数上的layer\u-to\u查询传递,有什么想法吗?
提前谢谢

这有点复杂,因为我看不出您是如何设置地图并将图层名称添加到表单的。基本上,您必须从地图的列表中返回图层对象。您可以递归地搜索层,直到找到与字段中的名称匹配的层。由于我不知道您是如何显示的,或者您使用的是什么库,因此我无法更具体地告诉您,或者让您知道任何更好的方法

无论哪种方式,这都需要一点编码,而不是简单的几行代码