[mapserver-users] WFS limit time interval to POSTGIS
Heiko Schröter
schroete at iup.physik.uni-bremen.de
Fri Mar 19 01:55:40 PDT 2010
> Hi there,
>
> There is no explicit support of a TIME parameter in wfs but I believe
> It should be possible on a postgis layer to use the FilterEncoding to
> limit the request: would something like this work for you:
>
> Filter=<Filter><And><PropertyIsGreaterThan><PropertyName>your_time_field</PropertyName><Literal>2007-01-02</Literal></PropertyIsGreaterThan><PropertyIsLessThan><PropertyName>your_time_field</PropertyName><Literal>2007-01-03</Literal></PropertyIsLessThan></And></Filter>
>
>
> regards,
Thanks very much for the suggestion. It does not work that easy (of course ;-) ) but you can filter using the following converting the date to UNIX epochs first and compare the integers.
Unfortunatly the WFS part of MS 5.6.1 does not handle the type 'date' <YYYY-MM-DD> for comparison or calculus.
This works:
http://localhost/cgi-bin/mapserv.patched/?map=/var/www/localhost/mapserver/wfs6_include.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=getfeature&TYPENAME=BRO_V32_TIMED&FILTER=<Filter><And><PropertyIsGreaterThan><PropertyName>date_part('epoch',datum::timestamp without time zone)</PropertyName><Literal>1191359000</Literal></PropertyIsGreaterThan><PropertyIsLessThan><PropertyName>date_part('epoch',datum::timestamp without time zone)</PropertyName><Literal>1191359640</Literal></PropertyIsLessThan></And></Filter>
Still quite ugly to mee.
Is there a deeper reason for not having a time spec within WFS ?
To me you usually have data points in space _and_ time. But i'am not a GEO man either (daily satellite based measurements we have).
Thanks and Regards
Heiko
The LAYER definition is as follows. Funny enough one needs not to specify the FILTER at all ... ok, one learns something new every day:
LAYER
EXTENT -180 -90 180 90
CONNECTIONTYPE POSTGIS
NAME "BRO_V32_TIMED"
PROCESSING "CLOSE_CONNECTION=DEFER"
OPACITY 60
STATUS ON
DUMP TRUE
METADATA
"wfs_title" "bro_v32_timed"
"wfs_maxfeatures" "10"
"gml_featureid" "ID" ## REQUIRED
"gml_include_items" "all" ## Optional (serves all attributes for layer)
"gml_geometries" "rechteck"
"gml_rechteck_type" "polygon"
END
PROJECTION
"init=epsg:4326"
END
CONNECTION "user={BF961C25A57BA226} password={C9748CA35D48D049} dbname={6B40E65B12B92106} host=localhost"
DATA "rechteck from bro_v32_timed using srid=-1 using unique datum"
TYPE POLYGON
SIZEUNITS meters
CLASS
NAME "bro_v32_timed_total_class"
STYLE
OUTLINECOLOR 0 0 0
COLOR [farbe]
END
END
END # Layer
More information about the MapServer-users
mailing list