This work is based on the ol.expr package by @tschaub.
It adds a few named expression functions to that package:
* INTERSECTS, CONTAINS, DWITHIN, WITHIN (no client-side implementation as yet)
* LIKE (like comparison with wildcard, singleChar and escapeChar)
* IEQ (case-insensitive equality)
* INEQ (case-insensitive non-equality)
It also adds a few extra parameters to the existing EXTENT function to be able
to deserialize and serialize all info (i.e. projection and property name).
Some changes were needed for the GML parser as well:
* createGeometry function needed to be public
* when parsing Box (GML2) and Envelope (GML3) also parse the srsName
* fix up writing for Box and Envelope now that bounds is an array
Also added createDocumentFragment function to the XML parser. Implementation
is similar to OpenLayers 2.
Some addtional notes on the implementation:
* PropertyIsBetween was implemented as an ol.expr.Logical with operator
ol.expr.LogicalOp.AND and two ol.expr.Comparison instances with operator
ol.expr.ComparisonOp.GTE and ol.expr.ComparisonOp.LTE
* In OGC Filter And and Or can contain more than 2 sub filters, so this
is translated into a hierarchy of ol.expr.Logical
As demonstrated in the tests, a MultiGeometry may contain other MultiGeometry nodes. We can support this with heterogenous GeometryCollection instances - though these are not currently rendered.
KML and WKT don't specify a winding order, so we write those out in CW/CCW order (for exterior/interior). GML references ISO 19107 that specifies CCW/CW, so we serialize in that winding order.
Having hand generated all this GML data the first time around, I reserve the right to modify it for the tests.
Now that we have FeatureId support (see #733), we can add this back to the
GML parsers (v2 and v3). Also add write support for FeatureId in KML, read
support was already added by @fredj
Add a parser (read/write) for OGC Well-Known-Text (WKT). It deals with
geometries only, not with features, mostly because WKT can only contain a
single geometry (or geometry collection). This can later on be used to
serialize and deserialize geometries in ol3.
This adds a parser (read/write) for GML v2 and v3. GML v3 is limited to the
simple features profile of GML 3.1.1, just like OpenLayers 2 was. This will
be the basis for the WFS parser, but it only makes sense to continue this work
once feature modification (insert, update, delete) is in place in ol3. So the
WFS parser will be another pull request.
This also involves some modifications to the xmleql functionality now that
it was tested with a real-life case (KML). Also, some of the input KML files
needed to be changed since we currently cannot roundtrip 100% of the input.