[OpenLayers-Users] Correct format for cql_filter in WMSgetFeatiureInfo

Asle Benoni asle.benoni at gmail.com
Wed Jun 13 06:46:28 PDT 2012


Hi,
I found a value for the WMSgetFeatureInfo() function and not sure how to
put in my layers.

Do I use this:

layerUrls: <how do I write several layers here?...>
or
layers:  <how do I write several layers here?...>

Thanks for any help!
~asle

2012/6/12 Jørgen Schøyen Nicolaysen <smockmakker at gmail.com>

> I only got a few ideas, hope they help.
>
> 1) If you are using several layers from geoserver for you WMS layer, the
> cql_filter may need to be a comma seperated list matching the layers on the
> WMS you are showing. (You are using several layers if the WMS call
> parameter, as seen in FireBug, shows http://.../wms?...&layers=layer1,layer2,layer3&..).
> BTW: From your original code for initializing  WMSGetFeatureInfo I do not
> see any arrayof urls.
>
> 2) You should init WMSGetFeatureInfo with the parameter 'layer', which is
> your (openlayers) WMS layer. The 'url' parameter is only needed to pinpoint
> exaclty which url to use if you set up this control parameter 'layer' with
> an array, i think. However WMSGetFeature will try to pick an url from the
> layer array if it is not provided.  Why not try to read the
> WMSGetFeatureInfo.js class to get the ide about how this works.
>
> 3) The code
>   if (typeof param != 'undefined') {
> may be wrong. 'param' may be null or "", that is not an "undefined" value.
>
> 4) You may need an proxy?
> http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#ProxyHost
>
> 5) You are also using CQL filter on your basemaps (according to some of
> the code you have shown here). Are you sure this is correct.
>
>
> On Tue, Jun 12, 2012 at 9:02 PM, Asle Benoni <asle.benoni at gmail.com>wrote:
>
>> I read in this discussion:
>> https://getsatisfaction.com/opengeo/topics/error_in_wmsgetfeatureinfothat "If
>> you use an array of URLs in your WMS layers, you do not need layerUrls."
>> and that is exactly what I am using, an array of layers. I can see it in
>> the WMS call to fetch features. Or am I uncorrect?
>>
>>
>> 2012/6/12 Asle Benoni <asle.benoni at gmail.com>
>>
>>> Thanks! Clear enough but not for a newbie like me :-) Could you supply a
>>> sample code for this? I have all the layers in an array layers[n]. How
>>> would I write the code? I have a cql_filter that I apply a search filter
>>> and I use a function like this:
>>>
>>> var mLayers = map.layers;
>>> for(var a = 4; a < (mLayers.length); a++ ){
>>>     mLayers[a].mergeNewParams({'CQL_FILTER': param});
>>>     mLayers[a].setVisibility(true);
>>> }}
>>>
>>>
>>> 2012/6/12 Ian Turton <ijturton at gmail.com>
>>>
>>>> On 12 June 2012 11:16, Asle Benoni <asle.benoni at gmail.com> wrote:
>>>> > Hello,
>>>> > I am struggling with this code where I have a cql_filter generated
>>>> from a
>>>> > search field. If the user has not searched anything the cql_filter
>>>> must be
>>>> > empty. I had problems getting a correct syntax if the cql_filter is
>>>> empty so
>>>> > I had to set a default value. But when I have a search code for
>>>> cql_filter
>>>> > it fails telling me in Firebug:
>>>> >
>>>> > Layers and filters are mismatched, you need to provide one filter for
>>>> each
>>>> > layer
>>>> >
>>>>
>>>> That seems clear enough - you need to provide one filter for each
>>>> layer that you are querying - in your case you probably want to limit
>>>> the number of layers to just the one you are interested in.
>>>>
>>>> Ian
>>>>
>>>> --
>>>> Ian Turton
>>>>
>>>
>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20120613/3107abc2/attachment.html>


More information about the Users mailing list