[mapserver-users] WMSgetFeatureInfo and variable substitution

Steve.Toutant at inspq.qc.ca Steve.Toutant at inspq.qc.ca
Mon Nov 23 12:44:43 EST 2009


Hi, 
I already posted this problem on openlayers list, but it might be a 
mapserver issue.

OpenLayers.Control.WMSGetFeatureInfo doesn't use the FILTER key in my 
mapfile. This filter is define with variables like this:
FILTER "semcdc in (%SEMCDC%) and rss in (%RSS%) and ordre in (%ORDRE%)" . 

The getMap request is succesfull but not the GetFeatureInfo request

Here is the request GetFeatureInfo
/cgi-bin/mapserv.exe?map=MYMAP 
service=WMS&version=1.1.0&request=GetFeatureInfo&layers=ecoles&query_layers=ecoles&styles=&bbox=-8820221.560815%2C5721770.182129%2C-7587445.168853%2C6361395.234705&srs=EPSG%3A900913&feature_count=3000&x=272&y=457&height=523&width=1008&info_format=text%2Fhtml 


Here is the response 
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?> 
<!DOCTYPE ServiceExceptionReport SYSTEM "
http://schemas.opengis.net/wms/1.1.0/exception_1_1_0.dtd"> 
<ServiceExceptionReport version="1.1.0"> 
<ServiceException> 
prepare_database(): Query error. Error declaring cursor: ERROR:  syntax 
error at or near &quot;%&quot; 
LINE 1: ...:text from ecoles WHERE (semcdc in (%SEMCDC%) ... 
                                                             ^ 
With query string: DECLARE mycursor BINARY CURSOR FOR SELECT 
&quot;taux_abs&quot;::text,&quot;nouv&quot;::text,asbinary(force_collection(force_2d(geom900913)),&#39;NDR&#39;),id::text 
from ecoles WHERE (semcdc in (%SEMCDC%) and rss in (%RSS%) and ordre in 
(%ORDRE%)) and (geom900913 &amp;&amp; setSRID( 
&#39;BOX3D(-8493071.07981319 5795761.22549582,-8480841.15528974 
5807991.15001926)&#39;::BOX3D,900913) ) 

</ServiceException> 
</ServiceExceptionReport> 

In OL, I have a WMS layer define like this: 
new OpenLayers.Layer.WMS('ecoles', 
'.../cgi-bin/mapserv.exe?map=MYMAP',{layers: 'ecoles', transparent: 
"true", format:"image/gif", SEMCDC:thisCDC, RSS: thisRSS, ORDRE: 
thisOrdre},{isBaseLayer: false, visibility: 
false,singleTile:true,transitionEffect: 'resize'}); 

How should I query the layer? 
Thanks 
Steve 

Steve Toutant, M. Sc.
Analyste en géomatique
Secteur environnement
Direction de la santé environnementale et de la toxicologie
Institut national de santé publique du Québec
945, avenue Wolfe
Québec, Qc G1V 5B3 
Tél.: (418) 650-5115 #5281
Fax.: (418) 654-3144
steve.toutant at inspq.qc.ca
http://www.inspq.qc.ca 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20091123/423ab2c2/attachment.html


More information about the mapserver-users mailing list