Alex - Good idea with the Firebug. This is what I found.... The first URL is the one being sent to the QGIS Server (returns no results) and the second one is the URL that gets sent to GeoServer (returns results):
http://localhost:8090/qgis/qgis_mapserv.fcgi.exe?LAYERS=location_view&QUERY_LAYERS=location_view&STYLES=&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&BBOX=-215.683594%2C-59.238281%2C215.683594%2C59.238281&FEATURE_COUNT=10&HEIGHT=337&WIDTH=1227&FORMAT=image%2Fpng&INFO_FORMAT=text%2Fhtml&SRS=EPSG%3A4326&X=650&Y=106 http://localhost:8080/geoserver/Postgres/wms?LAYERS=Postgres%3Alocation_view&QUERY_LAYERS=Postgres%3Alocation_view&STYLES=&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&BBOX=-215.683594%2C-59.238281%2C215.683594%2C59.238281&FEATURE_COUNT=10&HEIGHT=337&WIDTH=1227&FORMAT=image%2Fpng&INFO_FORMAT=text%2Fhtml&SRS=EPSG%3A4326&X=650&Y=106 You can see that both URLs contain the same parameters and values, except that the call to the GeoServer contains a workspace name with the layer name. Just as a test, I added the workspace name to the QGIS Server URL but that simply failed because it was an incorrect reference. The QGIS Server URL is going to a QGIS project file which contains a layer that comes from my GeoServer. So, in the end, we are talking about the same data set for both URLs, except one is going through QGIS Server as a pass-through to the GeoServer. So, given that there does not seem to be an issue with the URL or its parameters per se, I would have to believe that there must be some something within the QGIS Server configuration. I understand that QGIS Server is supposed to handle GetFeatureInfo requests so I must be missing something in the QGIS Server configuration, some extra parameter in the URL, or ???? Any new thoughts from the QGIS Server gurus? Thanks - Peter -----Original Message----- >From: Alex Mandel <[email protected]> >Sent: Jan 20, 2014 7:49 PM >To: Peter Len <[email protected]>, [email protected] >Subject: Re: [Qgis-user] QGIS Server a GetFeatureInfo request problems. Not >sure what I am missing. > >The method I use to troubleshoot these kinds of things involves using >the Firebug extension in Firefox. Where you can see what the WMS request >being sent looks like (NET tab), copy and paste it, manipulate it by >hand until it works and then figure out how to make Openlayers send it >that way. > >Thanks, >Alex > >On 01/20/2014 12:44 PM, Peter Len wrote: >> 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 >> > _______________________________________________ Qgis-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-user
