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