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

Reply via email to