[OpenLayers-Users] How to use CQL filter in OpenLayers.Control.WMSGetFeatureInfo?

Asle Benoni asle.benoni at gmail.com
Sat Jun 9 05:07:48 PDT 2012


Thanks. I tried this code:

vendorParams:{
                    CQL_FILTER:filter_param
                    },

But then the popups do not fire and I get this error in Firebug:

Layers and filters are mismatched, you need to provide one filter for each layer

So I am still doing something wrong?

~asle

2012/6/9 Dominik Mikiewicz <dominikmikiewicz at o2.pl>

> Geoserver uses cql_filter as far as I remember. Try replacing filter_param
> with cql_filter and you should be ok****
>
> ** **
>
> *From:* openlayers-users-bounces at lists.osgeo.org [mailto:
> openlayers-users-bounces at lists.osgeo.org] *On Behalf Of *Asle Benoni
> *Sent:* Saturday, June 09, 2012 1:13 PM
> *To:* Ignacio Talavera
> *Cc:* openlayers-users at lists.osgeo.org
> *Subject:* Re: [OpenLayers-Users] How to use CQL filter in
> OpenLayers.Control.WMSGetFeatureInfo?****
>
> ** **
>
> Thank you for putting me in this direction.
> I get an error with your suggested code. ****
>
> missing ; before statement****
>
> var filter_param["cql_filter"] = "norsknavngruppe LIKE '%Sopp%';****
>
> So I tried this:****
>
>
>           *var filter_param = "norsknavngruppe LIKE '%Sopp%'";*
>                    info = new OpenLayers.Control.WMSGetFeatureInfo({
>                    url: 'http://kart.naturkart.no/geoserver/wms',
>                    title: 'Identify features by clicking',
>                    queryVisible: true,
>                    infoFormat:'application/vnd.ogc.gml',
>                    *vendorParams:{
>                    filter_param:filter_param
>                    },*
>                    eventListeners: {
>                        getfeatureinfo: function(event) {
>                            if (popup) {
>                                map.removePopup(popup);
>                            } .........****
>
> ** **
>
> I get no error and I see (in Firebug) that this is added to the WMS
> request:****
>
>
> &info_format=application%2Fvnd.ogc.gml&filter_param=norsknavngruppe%20LIKE%20'%25Sopp%25'
> ****
>
> Still I get no filtering of the popups and it shows any data that is in
> the clicked location. I see that the response contains i.ex.****
>
> <gbif_ns:norsknavngruppe>Lav</gbif_ns:norsknavngruppe>****
>
> and it should not be included since I only want "norsknavngruppe LIKE
> '%Sopp%". ****
>
> Is there something wrong with my code? Thanks for any suggestions!****
>
>
>
> 2012/6/8 Ignacio Talavera <ignacio.talavera at gmail.com>:
> > Hi the WMSGetFeatureInfo manage additionals parameters of the url of the
> > GetFeatureInfo Request in  vendorparams attribute.
> > So try to add this to your code
> >
> > var filter_param["cql_filter"] = prosjektnummer LIKE '%2008-25%' OR
> > prosjektnavn LIKE '%2008-25%
> > info = new OpenLayers.Control.WMSGetFeatureInfo({
> >                    url: 'http://kart.naturkart.no/geoserver/wms',
> >                    title: 'Identify features by clicking',
> >                    queryVisible: true,
> >                    infoFormat:'application/vnd.ogc.gml',
> >                    vendorParams:filter_param
> > eventListeners: {
> >                        getfeatureinfo: function(event) {
> >                            if (popup) {
> >                                map.removePopup(popup);
> >                            } ........................
> > I hope this is useful to you.
> > Regards
> > Nacho
> > On Thu, Jun 7, 2012 at 11:48 AM, Asle Benoni <asle.benoni at gmail.com>
> wrote:
> >>
> >> I have made this map: www.babkart.no
> >>
> >> I have a search box that on select of the results sends a refresh of
> >> the layer with CQL parameters to GeoServer. This works.
> >> But of course when I click I get popups of all the markers, even if
> >> they are hidden because I understand that I send a WMS request without
> >> any filter.
> >>
> >> So I need help how to use the generated CQL params in my WMS request
> >> for GetFeautureInfo to GeoServer.
> >>
> >> My function CQLfilter in app.js on line 1027 produces this link:
> >> prosjektnummer LIKE '%2008-25%' OR prosjektnavn LIKE '%2008-25%
> >> which I use to filter the map.
> >>
> >> The question is how I can use this (or IF I can use it!) in my
> >> function (line 907):
> >>
> >> info = new OpenLayers.Control.WMSGetFeatureInfo({
> >>                    url: 'http://kart.naturkart.no/geoserver/wms',
> >>                    title: 'Identify features by clicking',
> >>                    queryVisible: true,
> >>                    infoFormat:'application/vnd.ogc.gml',
> >>                    eventListeners: {
> >>                        getfeatureinfo: function(event) {
> >>                            if (popup) {
> >>                                map.removePopup(popup);
> >>                            } ........................
> >>
> >> Any ideas on how to use the CQL code here?
> >>
> >> ~asle
> >> _______________________________________________
> >> 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/20120609/4b87fdf4/attachment.html>


More information about the Users mailing list