[OpenLayers-Users] GetFeatureInfo requests never get answers
Brent Pedersen
bpederse at gmail.com
Wed Jul 18 12:05:37 EDT 2007
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