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 <[email protected]> > 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 <[email protected]>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 <[email protected]> >> >>> 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 <[email protected]> >>> >>>> On 12 June 2012 11:16, Asle Benoni <[email protected]> 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 >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/openlayers-users >> >> >
_______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
