[mapserver-users] getFeatureInfo() Only Works on One Layer?
Michael Smith
michael.smith at usace.army.mil
Tue Jan 27 15:17:37 PST 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