[postgis-users] Querying MapServer PostGIS layer

Stephen Woodbridge woodbri at swoodbridge.com
Thu Apr 13 10:18:29 PDT 2006


The DBF files is limited by it's defining specification to 10 characters 
for attribute column names.

Not sure I can help much more than that. You might want to cross post 
his to the mapserver list as you will get a different (but overlapping) 
collection of people that might be able to help.

-Steve

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
>>>
>>
> 




More information about the postgis-users mailing list