[Qgis-user] QGIS Server a GetFeatureInfo request problems. Not sure what I am missing.
Peter Len
peteralen at earthlink.net
Thu Jan 23 05:42:40 PST 2014
Bernhard - Thanks for the info. I am not sure if GeoServer can handle cascading GetFeatureInfo requests but the typical scenario would not warrant that, meaning the path would be Client(OpenLayers) --> GeoServer --> PostGIS whereas using QGIS Server to display QGIS project files would add that extra layer. So, you are right in that it would seemingly work if the QGIS Desktop layers were layers based on a direct DB connection, but the point of using something like GeoServer is to abstract and consolidate GIS layers into a single location for users to access. Depending on your type of user, they may not know (or have a need for) database connection information. They may not know where shape files or GeoTiffs are located. GeoServer is like ArcCatalog where all types of GIS data (database, files like Shape and GeoTiff, WMS, WFS, etc) can be managed as layers and then clients (like QGIS Desktop or OpenLayers) need only come to GeoServer to get what they need. Unfortunately for us, we can't remove GeoServer from the architecture, so if you are correct about QGIS Server not being able to cascade these requests, we will need to think of some other solution. I will create another mailing list question specifically for this question. Thanks for you insight - Peter
-----Original Message-----
>From: Bernhard Ströbl <bernhard.stroebl at jena.de>
>Sent: Jan 23, 2014 3:18 AM
>To: qgis-user at lists.osgeo.org
>Subject: Re: [Qgis-user] QGIS Server a GetFeatureInfo request problems. Not sure what I am missing.
>
>Hi Peter,
>
>AFAIK QGIS server does not cascade GetFeaureInfo requests for cascaded
>WMS layers - does geoserver do this?
>So if you need GetFeatureInfo you have to load the layers directly from
>source (PostGIS) into your QGIS project (makes more sense anyway)
>
>Bernhard
>
>Am 21.01.2014 16:25, schrieb Peter Len:
>> An interesting update to this...... So the scenario that has not been working looks something like this:
>>
>> OpenLayers --> QGIS Server --> QGIS Project File --> GeoServer --> PostGIS
>>
>> I decided to run a test and create a new project file with the same layer (location_view) but this time create a PostGIS layer rather than a WMS layer going to GeoServer. In this case, the scenario looks like:
>>
>> OpenLayers --> QGIS Server --> QGIS Project File --> PostGIS
>>
>> So, given that, it appears that something else might be going on. QGIS Server does seem to be serving up feature information, but not in all scenarios. Not sure what the hiccup is between QGIS Server and GeoServer but I know that URLs from OpenLayers directly to GeoServer for feature info works fine.
>>
>>
>> -----Original Message-----
>>> From: Alex Mandel<tech_dev at wildintellect.com>
>>> Sent: Jan 20, 2014 7:49 PM
>>> To: Peter Len<peteralen at earthlink.net>, qgis-user at lists.osgeo.org
>>> 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<tech_dev at wildintellect.com>
>>>>> Sent: Jan 20, 2014 3:34 PM
>>>>> To: Peter Len<peteralen at earthlink.net>, qgis-user at lists.osgeo.org
>>>>> 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
>>>> Qgis-user at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/qgis-user
>>>>
>>>
>>
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-user
>>
>>
>> __________ Information from ESET Mail Security, version of virus signature database 9317 (20140121) __________
>>
>> The message was checked by ESET Mail Security.
>> http://www.eset.com
>>
>>
>
>--
>Bernhard Ströbl
>Anwendungsbetreuer GIS
>
>Kommunale Immobilien Jena
>Am Anger 26
>07743 Jena
>
>Tel.: 03641 49- 5190
>E-Mail: bernhard.stroebl at jena.de
>Internet: www.kij.de
>
>
>Kommunale Immobilien Jena
>Eigenbetrieb der Stadt Jena
>Werkleiter: Dr. Götz Blankenburg
>
>
>__________ Information from ESET Mail Security, version of virus signature database 9326 (20140122) __________
>
>The message was checked by ESET Mail Security.
>http://www.eset.com
>
>
>_______________________________________________
>Qgis-user mailing list
>Qgis-user at lists.osgeo.org
>http://lists.osgeo.org/mailman/listinfo/qgis-user
More information about the Qgis-user
mailing list