Yo también estoy mirando esto. Mi problema es diferente ya que no estoy seguro de cómo dirigirme a la capa correcta. He encontrado esto: http://www.azavea.com/blogs/labs/2011/06/using-the-cql_filter-parameter-with-openlayers-wms-layers/
Pero creo que entiendo tu problema. Tendrías que hacer una función que agarre el término de búsqueda (o búsqueda estática) y envíe la llamada de forma diferente a cada capa. Estoy usando una caja de búsqueda y una casilla de verificación donde buscar. Haga clic en la casilla de verificación (MyRadios) e introduzca la consulta de búsqueda. En el formulario, tener una presentación desencadenar la función y suprimir la acción por defecto. Yo uso ExtJS pero usted obtendría el valor del botón de radio marcado junto con el campo de entrada. Si quieres la opción del botón de radio puedes usar una sentencia if para cambiar el parámetro según el valor del radio marcado.
function CQLfilter(param){ //param here would be the search value
// send different request to different layers
req1 = "field1 LIKE '%" + param + "%'";
req2 = "field2 LIKE '%" + param + "%'";
req3 = "field3 LIKE '%" + param + "%'";
wms_layer1.mergeNewParams({'CQL_FILTER': req1});
wms_layer2.mergeNewParams({'CQL_FILTER': req1});
wms_layer3.mergeNewParams({'CQL_FILTER': req1})
}
function resetCQLfilters() {
delete wms_layer1.params.CQL_FILTER;
wms_layer1.redraw();
delete wms_layer2.params.CQL_FILTER;
wms_layer2.redraw();
delete wms_layer3.params.CQL_FILTER;
wms_layer3.redraw();
}
Esto es sólo una toma. Mi problema es que estoy utilizando una función para crear y cargar las capas, pero no sé cómo entonces obtener el nombre de la capa. ¿Sabe usted lo que mi layername sería en mi ejemplo?
var createWmsLayer = function(name, url, params, options) {
map.addLayer(new OpenLayers.Layer.WMS(name, url, params, options));
};
createWmsLayer("<span class='locc'>Ikke listet</span>", "http://localhost/geoserver/wms",
{layers: 'gbif_ns:ikke_listet',format: 'image/png', transparent: 'true'}, {singleTile: true, ratio: 1, isBaseLayer:false, visibility: false}
);
~asle