Alex - Thanks for the reply. Initially, I was trying to run this test using a project file where I used the "map" parameter in the layer definition. This got the layers to display within OpenLayers but the GetFeatureInfo request was not working. I then went back to having the project file in the QGIS Server's bin directory so that no file name has to be listed. That is the setup I was using in the examples I provided. I went back and ran another test when using a file at some path and used your "vendorParams" example, but the outcome is the same.
-----Original Message----- >From: Alex Mandel <[email protected]> >Sent: Jan 20, 2014 3:34 PM >To: Peter Len <[email protected]>, [email protected] >Subject: Re: [Qgis-user] QGIS Server a GetFeatureInfo request problems. Not >sure what I am missing. > >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 _______________________________________________ Qgis-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-user
