[postgis-users] Querying MapServer PostGIS layer

Paul Ramsey pramsey at refractions.net
Thu Apr 13 19:37:44 PDT 2006


Dave,

Turn on statement logging in your PostgreSQL installation and see  
what SQL mapserver is sending to the back-end.  That may clarify  
where/why things are failing a little.  Also, what Mapserver version  
are you using?

P

On Apr 13, 2006, at 8:34 AM, Dave Stone wrote:

> Thanks for that Steve. Would that it were that simple! I fell into  
> that trap when converting the data-source from PostGIS to  
> shapefile; I left the columns in lower-case. But the query template  
> did display -- it just couldn't fill in table values because it  
> didn't interpret the column-names as such. With the PostGIS layer I  
> don't even get boiler-plate text showing on the page. The  
> (abridged) template is:
>
> <!-- query template -->
> <html>
> <head>
>   <title>MapServer - ItemQuery</title>
> </head>
>
> <body bgcolor="#ffffff">
>
> <font size="+2" face="arial,helvetica"><b>Case 1: Simple ItemQuery  
> With QueryMap</b></font>
>
> <p>
>
> This is just a simple dump of a few attributes for an individual  
> location
> in the test suites parishes layer:
>
> <p>
>
> <b>Place Name:</b> [placename]<br>
> <b>Qualifying Name:</b> [qualifyingname]<br>
> <b>Location Type:</b> [locationtype]<br>
> <b>Grid Reference:</b> [locationgridref]<br>
> <b>Religious Order:</b> [religiousorder]<br>
>
> <p>
> - - - - - - - etc.
>
> Is there a limit to the length of column names? I noticed that the  
> above were truncated to 10 chars. by pgsql2shp. Any sources for  
> debugging info? I've looked in the error logs, but they only seem  
> to be recording parts of the app which (to my mind) are working.
>
> Thanks again,
>
> Dave
>
>
> Stephen Woodbridge wrote:
>> Dave,
>> Shapefile attribute columns are all UPPERCASE and Postgres/postgis  
>> attribute columns are all lowercase so you need to make sure that  
>> the reference to the attribute columns in your template match the  
>> case expected by the data source.
>> -Steve W
>> Dave Stone wrote:
>>> Please excuse if this post has been asked before; I'm new to the  
>>> list and finding it difficult to locate all the hidden gems of  
>>> wisdom!
>>>
>>> I'm having a problem with querying a MapServer layer consisting  
>>> of points stored in a PostGIS table. The plan is simple enough:  
>>> I'm displaying the dots together with a boundary and an  
>>> annotation layer, and I want to click on a dot and have a page  
>>> come up showing non-spatial attributes from the PostGIS record  
>>> for that location.
>>>
>>> What happens when I click a dot is I get a completely blank page  
>>> titled 'MapServer Message' (but no message). The relevant bit of  
>>> the MapServer .map file is:
>>>
>>>   LAYER # query layer using the loccoords PostgreSQL table
>>>     CONNECTIONTYPE postgis
>>>     NAME          saint_locations
>>>     CONNECTION    "user=erdb13 dbname=stdraft"
>>>     DATA          "geom from loccoords using unique locationref  
>>> using srid=27700"
>>>     STATUS        ON
>>>     DEBUG         ON
>>>     TYPE          POINT
>>>     TOLERANCE     25
>>>     CLASS
>>>       NAME        "Locations"
>>>       MINSCALE    2000000
>>>       TEMPLATE    "result.html"
>>>       DEBUG       ON
>>>       STYLE
>>>         SYMBOL      "circle"
>>>         SIZE        5
>>>         COLOR       255 0 0
>>>         OUTLINECOLOR 0 0 0
>>>       END
>>>     END
>>>
>>> This whole idea is based on an example in the MapServer tutorial  
>>> (http://hypnos.cbs.umn.edu/tutorial/section3.html, choose Ex. 
>>> 3.1). The example works fine, so why doesn't my version?  The  
>>> answer seems to be that the layer being queried in the example is  
>>> a shapefile whereas mine is in PostGIS.  To test this suspicion,  
>>> I amended the layer definition in the .map file as follows:
>>>
>>>   LAYER # query layer using the loccoords PostgreSQL table
>>> #   CONNECTIONTYPE postgis
>>>     NAME          saint_locations
>>> #   CONNECTION    "user=erdb13 dbname=stdraft"
>>>     DATA          "/var/www/html/saints/data/parish/locs"
>>>     STATUS        ON
>>>
>>> 'locs' is a shapefile produced by dumping (with pgsql2shp) the  
>>> 'loccoords' table in the first DATA statement above.
>>>
>>> With only this trivial change, the query template 'result.html'  
>>> works as intended. But since I want to use the PostGIS  
>>> functionality, I need to find out what's wrong with the first  
>>> LAYER spec. above.
>>>
>>> Any suggestions most gratefully received,
>>>
>>> Dave
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at postgis.refractions.net
>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list