[mapserver-users] cgi variable substituition in DATA statement

Peter Freimuth freimuth69 at gmail.com
Tue Aug 20 16:26:04 PDT 2013


Hi,
i am trying to get the dynamic variable substitution work on Mapserver 
6.3dev but somehow it does'nt work as it worked before and as documented.
When i execute
http://10.10.4.18/cgi-bin/LI_USA-MT.cgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=48.046271,-115.929840,48.198407,-115.666914&CRS=EPSG:4326&WIDTH=1647&HEIGHT=953&LAYERS=data_view&STYLES=&FORMAT=image/png&DPI=96&TRANSPARENT=TRUE&STARTDATE=2011-01-01&ENDDATE=2013-09-01

or

http://10.10.4.18/cgi-bin/LI_USA-MT.cgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=48.046271,-115.929840,48.198407,-115.666914&CRS=EPSG:4326&WIDTH=1647&HEIGHT=953&LAYERS=data_view&STYLES=&FORMAT=image/png&DPI=96&TRANSPARENT=TRUE

I get an error in
  msDrawMap(): Image handling error. Failed to draw layer named 'data_view'.
msPostGISLayerWhichShapes(): Query error. Error executing query: ERROR:  
invalid input syntax for type date: "%STARTDATE%"
LINE 8: ...     (((acquisition_date >= date_trunc('day',date '%STARTDAT...
                                                              ^
So the substitution does not happen or the default is not applied.
Any hint on what i am doing wrong would be great.

See below the components from the mapfile:

MAP
.....
     #
     # Start of web interface definition
     #
     DATAPATTERN '^[a-zA-Z0-9\-\_\,]+$'

     WEB
         IMAGEPATH "/mnt/mapserver/mapserver_wms/geocloud_config/image_path"
         METADATA
             .....
             'PRODUCTID_validation_pattern'  '^[a-zA-Z0-9\-\_\,]+$'
             'default_PRODUCTID'  '1234567'
             'CONTRACTIDS_validation_pattern'  '^[a-zA-Z0-9\-\_\,]+$'
             'default_CONTRACT_IDS'  '0000'
             'STARTDATE_validation_pattern' 
'^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
             'default_STARTDATE'  '2011-01-01'
             'ENDDATE_validation_pattern' 
'^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
             'default_END_DATE'  '2013-09-01'
         END
         VALIDATION
              'PRODUCTID'  '^[a-zA-Z0-9\-\_\,]+$'
              'CONTRACTIDS' '^[a-zA-Z0-9\-\_\,]+$'
              'STARTDATE'  '^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
              'ENDDATE'  '^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
         END
     END
.....
     LAYER
         # this is the tileindex that aggregates the single image 
products together and makes them accessible for the RASTER LAYER 
"data_view" and "data_raw" for rendering
         NAME "data_idx"
         STATUS ON
         DEBUG 5
         UNITS dd
         TYPE POLYGON
         EXTENT -116.364631680367 44.1932837062986 -103.698350095065 
49.1892799088128
         PROCESSING "CLOSE_CONNECTION=DEFER"
         CONNECTIONTYPE POSTGIS
         CONNECTION "user=***** password=***** dbname=***** host='*****' 
port=5432"
         DATA "wkb_geom FROM (SELECT t1.* FROM (SELECT re3aip.cat_id as 
archived_in_archiving_identifier, ico.image_id, ico.acquisition_date, 
re3aip.tile_id,
ico.product_provider_image_identifier, re3aip.ohs_order_id, 
re3aip.imagetake_cat_id, ico.epsg_code,
re3aip.ohs_contract_id,  ico.service_name,
ico.footprint_poly::geometry as wkb_geom, ico.image_location, 
ico.vrt_location
FROM ows.imagepool_catalogue_ows ico
JOIN ows.re_l3a_imagepool re3aip ON (re3aip.image_id=ico.image_id)
WHERE ico.service_name in ('LI_USA-MT') AND
(((acquisition_date >= date_trunc('day',date '%STARTDATE%') AND
acquisition_date < date_trunc('day',date '%ENDDATE%') + interval '1 
day'))) AND
re3aip.ohs_contract_id in ('%CONTRACTID%')
) t1
LEFT OUTER JOIN
(SELECT ico.image_id, ico.acquisition_date, re3aip.tile_id
FROM ows.imagepool_catalogue_ows ico
JOIN ows.re_l3a_imagepool re3aip ON (re3aip.image_id=ico.image_id)
WHERE ico.service_name in ('LI_USA-MT') AND
                             (((acquisition_date >= 
date_trunc('day',date '%STARTDATE%') AND
acquisition_date < date_trunc('day',date '%ENDDATE%') + interval '1 
day'))) AND
re3aip.ohs_contract_id in ('%CONTRACTID%')
                                                                    ) t2
                                                                   ON 
t1.tile_id = t2.tile_id AND
((t1.acquisition_date < t2.acquisition_date) OR
(t1.acquisition_date = t2.acquisition_date AND t1.image_id < t2.image_id))
WHERE t2.tile_id is NULL
ORDER BY t1.ohs_contract_id, t1.tile_id
                                         ) foo USING UNIQUE image_id 
USING SRID=4326"
         #FILTER ( '[product_provider_image_identifier]'='%PRODUCTID%')
         PROJECTION
             "init=epsg:4326"
         END
         METADATA
             "ows_title" "Data Index"
             "ows_extent"  "-116.364631680367 44.1932837062986 
-103.698350095065 49.1892799088128"
             #'PRODUCTID_validation_pattern'  '^[a-zA-Z0-9\-\_\,]+$'
             #'default_PRODUCTID'  '1234567'
             'CONTRACTIDS_validation_pattern'  '^[a-zA-Z0-9\-\_\,]+$'
             'default_CONTRACTIDS'  '0000'
             'STARTDATE_validation_pattern' 
'^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
             'default_STARTDATE'  '2011-01-01'
             'ENDDATE_validation_pattern' 
'^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
             'default_ENDDATE'  '2013-09-01'
             #disable explicitly everything that shall not be supported 
for this Layer
             "wms_enable_request"  "!GetCapabilities !GetMap 
!GetLegendgraphic"
             "wcs_enable_request" "!GetCapabilities !GetCoverage 
!DescribeCoverage"
             "wfs_enable_request" "!GetCapabilities !GetFeature 
!DescribeFeatureType"
         END
         VALIDATION
             'PRODUCTID'  '^[a-zA-Z0-9\-\_\,]+$'
             'CONTRACT_IDS'  '^[a-zA-Z0-9\-\_\,]+$'
             'STARTDATE'  '^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
             'END_DATE'  '^([0-9]{4})-([0-9]{2})-([0-9]{2})$'
         END
     END
....
END


More information about the mapserver-users mailing list