MS + PostGIS no rows detection?

Jesse Cleary jcleary at EMAIL.UNC.EDU
Wed Jan 25 08:45:26 PST 2006


Hi folks

I'm trying to determine a programmatic method to determine when a 
PostGIS layer query in MapServer returns no rows/empty, beyond not 
seeing the data on the map.  I am setting my FILTER string interactively 
using MapScript - sometimes the user's choice does not return any rows 
from the DB.  In that case, I would like to substitute a small "No Data 
Available" label on the map instead of the data. 

I thought about implementing this through a separate label layer in my 
mapfile, but "no rows" will not return any geometry to use for my "No 
Data" labeling.  I have tried using inline FEATUREs to handle the label 
geometry, querying the DB using the same filter, and setting my class 
expression to detect empty values for any field ( '[field]' = '' ).  
However,  this does not work - I think inline features override the 
DATA, CONNECTION, or FILTER parameters and hence no DB querying takes 
place at all.  

I am open to using PHP/MapScript if that could work better - I could 
then rewrite the label layer DATA string to point to a static "No Data" 
shapefile.  Or perhaps this requires a separate DB table with label-only 
text and geometry, populated with only the empty time slices missing 
from my main geom table?


Hoping there are some clever ideas that I have overlooked.  I'm just not 
able to wrap my head around which option to investigate further.  Thanks 
for any suggestions y'all might have!


Jesse Cleary


MapServer 4.2.5, PostgreSQL 8.0.5, PostGIS 1.0.4-2


-- 
Jesse Cleary				
Department of Marine Sciences	
UNC Chapel Hill

17-6 Venable Hall
jcleary at email.unc.edu
(919) 962-4323



More information about the MapServer-users mailing list