[OpenLayers-Users] GetFeatureInfo requests never get answers

Marc Desharnais marc.desharnais at ec.gc.ca
Thu Jul 19 09:04:34 EDT 2007


Hi,

I confirm that my geoserver is working fine. I exchanged some emails on 
the geoserver mailing list and they suggested me to try the preview maps 
given by geoserver. They now integer the getfeatureinfo functionality in 
the default previews.

So I tried there and everything worked fine.

but, now, if I copy the html code entirely without any modification into 
my webpage, I won't work. The map displays fine and everything. But it 
hangs on the loading message and never get response. I used Firebug to 
track the bug and I remarked that the request is never noticed in 
firebug when I click on a point. The loadURL function is called but not 
the setHTML. It makes me think that maybe it's a permission problem. 
Since it semms to work from geoserver itself but not from apache (which 
my web page is on).

Anyone had any experience like this?

Thank a lot,

Marc



Brent Pedersen wrote:
> hi,
> in mapserver, you'd have to add something to make getfeatureinfo work
> ('ows_include_items') is that the case in geoserver?
> have you checked if the &X , &Y url parameters look like the correct
> pixel values.
> then what does postgres log for the query from geoserver?
> -b
>
>
> On 7/18/07, Marc Desharnais <marc.desharnais at ec.gc.ca> wrote:
>>
>>
>> Hi all,
>>
>>  I wish to update my problem in hope to get more precise help.
>>  I checked what is returned by the server and every time and do a manual
>> attempt by entering the request URL myself I get "no features were 
>> found".
>>  Is it because of the server or from OpenLayers?
>>  I tried to change the name of the layer in the reuqest to something 
>> random,
>> and I received a message telling that the feature type was not found.
>>
>>  So I guess that it is querying the server with something that 
>> exists. But
>> it can't get any feature from the database. Again, if anyone has any
>> experience of OpenLayers getting layers from geoserver with PostGIS, 
>> please
>> tell me if there is anything to do in the database to make ot work.
>>
>>
>>  Thank you :)
>>
>>  Marc
>>
>>
>>  Tim Schaub wrote:
>>
>> Hey Marc-
>>
>>  Marc Desharnais wrote:
>>
>> To get the getfeatureInfo working. I get the loading message in the div
>> section 'nodeList'. The problem is that it never seems to get an answer.
>>  I get the checkpoint popup when I click the map so I guess that this 
>> part
>> is executed well. But it stays forever with the loading message.
>>  So probably "wmsLayer1.getFullRequestString" is not correct or my 
>> database
>> is not quite right... I just have a layer with points.
>>  And I want to query information about thoise points in the database to
>> display it beside the map.
>>
>>  Since you are making an asynchronous request for the GetFeatureInfo
>> results, you are subject to the same origin policies that browsers 
>> enforce.
>>
>>  This means that your GetFeatureInfo request won't go anywhere unless 
>> it is
>> requested with the same protocol, from the same port, and on the same 
>> host
>> as the request that initiated your application (see [1]).
>>
>>  If this sounds like your issue (i.e. you are making the request to
>> GeoServer on a different port than the request for the rest of your
>> application), see the FAQ on setting up a proxy host [2].  Note that 
>> if you
>> are using the proxy.cgi that comes in the OL examples directory, you 
>> will
>> need to add your host (and port) to the accepted list (in proxy.cgi).
>>
>>
>>
>>  I'm using a local Geoserver with PostGIS. I would like to know too 
>> how the
>> getFeatureInfo query works.
>>  Like if I have anything I have to do specially into the database. I 
>> figure
>> that it's querying the database for info, but what info?
>>  Do I have to define what I want to be queried?  Maybe this is off-topic
>> here sorry.
>>
>>  Also, use Firebug to watch the requests go out.  Copy the request 
>> and paste
>> in to a new tab to make sure you are getting what you expect.  If you 
>> don't
>> get what you expect, then you'll have to troubleshoot your GeoServer
>> configuration.
>>
>>  Hope that helps some,
>>  Tim
>>
>>  [1]
>> http://www.mozilla.org/projects/security/components/same-origin.html
>>  [2]
>> http://trac.openlayers.org/wiki/FrequentlyAskedQuestions#ProxyHost
>>
>>
>>
>>
>>
>>  I searched for informations on the UTIL package for openlayers but 
>> didn't
>> find real documentation about that.
>>
>>  Please let me know if you would like more info.
>>
>>
>>  Any help will be greatly appreciated.
>>  Thanks in advance
>>
>>
>>
>>
>>
>>  /******* CODE START HERE - !!! Note that this code is not complete. I
>> posted only the parts I found relevant. !!!
>>    function init(){
>>
>>            var map = new OpenLayers.Map($('map'), {controls:[]} );
>>            OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
>>                               var yahooLayer = new 
>> OpenLayers.Layer.Yahoo(
>> "Globe (Yahoo)", {reproject: "true"} );
>>                      map.addLayer(yahooLayer);
>>                     var wmsLayer1 = new OpenLayers.Layer.WMS(
>>                  "POSTGIS villes",
>> "http://ulysse.cmc.ec.gc.ca:8081/geoserver/wms",
>>            {
>>               layers: 'topp:villes',
>>               format: 'image/png' , transparent: "true", reproject: 
>> "true"}
>>            );
>>                              map.addLayer(wmsLayer1);
>>                     map.addControl(new
>> OpenLayers.Control.LayerSwitcher());
>>
>>            map.addControl(new OpenLayers.Control.NavToolbar());
>>            map.addControl(new OpenLayers.Control.PanZoomBar($('map')));
>>                map.addControl(new
>> OpenLayers.Control.MouseDefaults());
>>            map.addControl(new OpenLayers.Control.Scale($('scale')));
>>            map.addControl(new
>> OpenLayers.Control.MousePosition({element:
>> $('position')}));
>>
>>            map.events.register('click', map, function (e) {
>>                  OpenLayers.Util.getElement('nodeList').innerHTML =
>> "<b>Téléchargement d'information...<br> Veuillez Attendre SVP...</b>";
>>                  var url =  wmsLayer1.getFullRequestString({
>>                     REQUEST: "GetFeatureInfo",
>>                     EXCEPTIONS: "application/vnd.ogc.se_xml",
>>                     BBOX: wmsLayer1.map.getExtent().toBBOX(),
>>                     X: e.xy.x,
>>                     Y: e.xy.y,
>>                     INFO_FORMAT: 'text/html',
>>                     QUERY_LAYERS: wmsLayer1.params.LAYERS,
>>                     WIDTH: wmsLayer1.map.size.w,
>>                     HEIGHT: wmsLayer1.map.size.h});
>>                     OpenLayers.loadURL(url, '', this, setHTML);
>>
>>                     alert("Checkpoint");
>>
>>                     Event.stop(e);
>>               });
>>
>>
>>         }
>>                       function setHTML(response) {
>>            alert("before answer");
>>            OpenLayers.Util.getElement('nodeList').innerHTML =
>> response.responseText;
>>            alert("after answer");
>>         }
>>
>>  /********* CODE STOPS HERE
>>  _______________________________________________
>>  Users mailing list
>>  Users at openlayers.org
>>  http://openlayers.org/mailman/listinfo/users
>>
>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>>




More information about the Users mailing list