[mapserver-users] getFeatureInfo() Only Works on One Layer?

Michael Smith michael.smith at usace.army.mil
Tue Jan 27 18:17:37 EST 2009


Bill,

Try separating the QUERY_LAYERS with a space rather than a comma. MapServer
uses space delimited values (gets changed to + separated in the URL).

Mike


-- 
Michael Smith
RSGIS Center
ERDC - CRREL
US Army Corps of Engineers





On 1/27/09  6:13 PM, "Bill Thoen" <bthoen at gisnet.com> wrote:

> I originally asked this on the OpenLayers forum, but was told that this
> is really a Maperver question. So I'll try it here.
> 
> I've got a WMS layer that has two sub-layers in it and I'm trying to get
> attribute information from them via a getFeatureInfo request, but I can
> only get one of them to respond at a time. I've looked at the docs at
> http://trac.openlayers.org/wiki/GetFeatureInfo and noticed that you can
> specify several layers with the QUERY_LAYERS parameter, but I'm finding
> that only the one listed first is active. Also, it's not clear what
> layer you specify at the root of the request, but it looks like it's
> supposed to be different from the layers you're querying. Anyway, here's
> what I'm trying:
> 
> I open and load the combined layer like so:
>  base = new OpenLayers.Layer.WMS(
>    "Base",
>    "http://192.168.0.250/cgi-bin/mapserv?map=base.map",
>    { layers: ["us_states", "us_interstate"] }
>  );
>  map.addLayer(base);
> 
> 
> And here's the request string I'm sending to MapServer:
> 
> var url = base.getFullRequestString({
>  REQUEST: "GetFeatureInfo",
>  EXCEPTIONS: "application/vnd.ogc.se_xml",
>  FORMAT: 'png',
>  BBOX: map.getExtent().toBBOX(),
>  X: event.xy.x,
>  Y: event.xy.y,
>  INFO_FORMAT: 'text/plain',
>  QUERY_LAYERS: "us_interstate, us_states",
>  FEATURE_COUNT: 1,
>  WIDTH: map.size.w,
>  HEIGHT: map.size.h},
>  "http://192.168.0.250/cgi-bin/mapserv?map=base.map&");
> OpenLayers.loadURL(url, '', this, setHTML);
> 
> Note the QUERY_LAYERS line. As shown here, it responds with interstate
> attributes only when I click on an interstate roadway feature, but I get
> nothing when I click on a state. If I reverse the order of these layers
> in the list, then clicking on a state returns attributes from the
> us_states table only. Even if I click on a spot where features in both
> layers coincide, it returns only the attributes for the layer listed first.
> 
> Also, setting the FEATURE_COUNT parameter to something higher than 1 just
> gives me more results from the single that  is working.
> 
> So how do I use multiple layers in the QUERY_LAYERS parameter, or do I
> get only one at a time? Also, I just guessed at using the layer called
> 'base' for the getFeatureInfo oject, what is supposed to be used here?
> 
> TIA,
> - Bill Thoen
> 
> 
> 
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list