[Qgis-user] QGIS Server a GetFeatureInfo request problems. Not sure what I am missing.

Alex Mandel tech_dev at wildintellect.com
Mon Jan 20 12:34:51 PST 2014


On 01/20/2014 12:19 PM, Peter Len wrote:
> I am using QGIS Server that is running in my OSGeo Apache web server (on Windows 7).  Not sure what version the QGIS Server is but it was from the latest OSGeo4W installer.  I was testing an OpenLayers client to view a QGIS Desktop project file over WMS from the QGIS Server.  All seems good with that.  For example, my OpenLayers code to get  this looks like:
> 
> var url = "http://localhost:8090/qgis/qgis_mapserv.fcgi.exe";
> var layer = new OpenLayers.Layer.WMS( "Main Layer", url, {
> 	layers: 'table_poly,location_view',
> 	format: 'image/png',
>    },
>    {
>        buffer: 1, 
> 	isBaseLayer: true, 
>        graphicZIndex: 0, 
>    }
> );
> map.addLayers([layer]);
> 
> With the above, I can view my layers within OpenLayers.  My next test was to see if I could get the feature info from items on my layers.  I found an example of how to make this call in OpenLayers and it looks like:
> 
> var info = new OpenLayers.Control.WMSGetFeatureInfo({
>                           url: url,
>                           title: 'Identify features by clicking',
>                           queryVisible: true,
>                           eventListeners: {
>                             getfeatureinfo: function(event) {
>                                 alert("Got feature info");                         
>                             }
>                          }
>                       });
> map.addControl(info);
> info.activate();
> 
> When I tried this, I didn't get anything except a spinning cursor.  I then tried another test to see if that was the correct way to ask for feature info so I changed the URL for the layers to get the layers from my GeoServer rather than from QGIS Server (the project file got these layers initially from GeoServer so we are talking about the same layer source).  That worked just fine and I was able to get individual feature information.  After switching back to point to my QGIS Server I started to look at the Apache web server logs and the GeoServer output screen.  The Apache logs didn't list anything related but the GeoServer console listed the following:
> 

WMS GetFeatureInfo in OpenLayers does in fact work with QGIS Server with
one trick, vendorParams you need to specify the qgs file to reference.

infoControls = {
            click: new OpenLayers.Control.WMSGetFeatureInfo({
                url: "http://yoursite.com/cgi-bin/qgis_mapserv.fcgi",
                title: 'Identify features by clicking',
                layers: [yourlayer],
                queryVisible: true,
                vendorParams:{map:"/path/to/map/project.qgs"}
            }),


Thanks,
Alex



More information about the Qgis-user mailing list