13 Jun 2012 15:46
Re: Correct format for cql_filter in WMSgetFeatiureInfo
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 codeif (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-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
_______________________________________________I read in this discussion: https://getsatisfaction.com/opengeo/topics/error_in_wmsgetfeatureinfo that "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 meCould 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-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>On 12 June 2012 11:16, Asle Benoni <asle.benoni-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:That seems clear enough - you need to provide one filter for each
> 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
>
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-qjLDD68F18NQ/50SGhhxiw@public.gmane.orgo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users
_______________________________________________ Users mailing list Users@... http://lists.osgeo.org/mailman/listinfo/openlayers-users
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:
RSS Feed