Ticket #2111 (closed task: fixed)
[Filter] upgrade to Filter 1.1.0
|Reported by:||tomkralidis||Owned by:||assefa|
|Component:||SOS Server||Version:||svn-trunk (development)|
|Cc:||sdlime, bartvde@…, dmorissette, warmerdam|
(for reference: this stemmed from ticket #2105).
MapServer currently supports the OGC Filter Encoding Specification, version 1.0.0.
Filter Encoding 1.1.0:
Here is what FES 1.1.0 provides over and above FES 1.0.0:
a./ Addition of SortBy, thereby allowing a Filter expression the opportunity to specify a sortation column, either ascending or descending (ASC or DESC). Example:
<ogc:PropertyName>title</ogc:PropertyName> <ogc:SortOrder>DESC</ogc:SortOrder> </ogc:SortProperty>
b./ GML Object id support, i.e.:
...which isn't far from FeatureId (see ticket #2102)
a./ do we want to support functions (like sin, cos) and arithmetic operators (Sub, Add, etc.) ?
b./ spatial ops: which ones do we support? From FES 1.1.0:
c./ note section 8.3 of the spec which deals with reprojecting (bscially, we process as per the underlying data's advertised projection, unless explicitly set by client (i.e. SRS in KVP, or SRS passed in Filter request). If an SRS is explicitly defined in the client's Filter packet, and not supported, then exception is thrown.
d./ comparison ops: which ones do we actually support? From FES 1.1.0:
e./ we support the logical ops (And, Or, Not)
f./ we have to now identify the GeometryOperands (i.e. gml:Point, gml:Polygon, etc.) that our filters support. Note that these must be in GML 3.1.1
g./ Note that most of the MapServer OGC codebase leverages Filter 1.0.0, with the exception of SOS (to which we've basically implemented Filter 1.1.0 without the new features (i.e. looks like Filter 1.0.0)
A big question here is how we develop this (i.e. msIO_printf or libxml2)? If the latter, do we do this only for FES 1.1.0?
My preference would be to encode just FES 1.1.0 with libxml2 and leave 1.0.0 as is.