[mapserver-users] itemquery, itemnquery, qstring struggles

Jim.Haug at state.sd.us Jim.Haug at state.sd.us
Mon Oct 20 23:00:37 EDT 2008


I've run into a brick wall on this. I've been trying to incorporate itemquery in a mapserver, first just through a simple test page that does a quick query. The test page is a simplified form of the itemquery in the test suite. If I use the qitem setting I get a "msDBFGetItemIndex(): DBASE file error. Item '[SITE_NO]' not found" error. If I drop the qitem, I get either the first item in the data, or in the case of an itemnquery, all of the data.

What I'm doing is setting up a mapserver for archaeological site data in South Dakota. The query will let a user enter an archaeological site number (i.e. 39RO0005). In the test case, the server should find the site and give just a list of the site number it found; eventually I'll work it into zooming in on the site on the map. The problem is, that the search either ends up in an error (above) or it returns site '39AU0001', which is the first site in the dataset. If I try itemnquery, I get all 19,000 sites.

Here is the test web page:

<html>
<head>
<title>ItemQuery test</title>
</head>

<body>
<p>
<form name="test" method="get" action="/cgi-bin/mapserv">
<input type="hidden" name="map" value="/gisdata/sd/sd_x.map">
<input type="hidden" name="mode" value="itemquery">
<input type="hidden" name="qlayer" value="sites">
<input type="hidden" name="qitem" value="SITE_NO">

Site:&nbsp;<input type="text" name="qstring" maxlength="50">
<input type="submit" value="Go!">

</form>


</body>
</html>


and here is the layer part of the map file:

  LAYER
    NAME 'sites'
    TYPE POLYGON
    DATA '/gisdata/sd/arch/sites.shp'
    METADATA
      qstring_validation_pattern '.'
    END
    STATUS OFF
    OPACITY 50
    PROJECTION
      "init=epsg:4326"
    END
    LABELITEM "SITE_NO"
    LABELMAXSCALEDENOM 48000
    CLASS
       NAME 'sites' 
       TEMPLATE "/var/www/sd/templates/sites.html"
       LABEL
         COLOR 96 64 64
       END
       STYLE
         SYMBOL 0 
         SIZE 3 
         OUTLINECOLOR 64 64 64
         COLOR 200 64 64
       END
    END
    HEADER "/var/www/sd/templates/sites_h.html"
  	FOOTER "/var/www/sd/templates/sites_f.html"
  END


I've tried a few different qstring validation templates, but none of them seem to work. The line in the address on the browser I get from the server is:

http://hawken/cgi-bin/mapserv?map=/gisdata/sd/sd_x.map&mode=itemquery&qlayer=sites&qstring=39ro0005

I'm stumped. I don't know what I'm doing wrong. Any suggestions, corrections, ridicule, whatever?

-Jim Haug


More information about the mapserver-users mailing list