Convert coordinates to storage crs when filtering via cql (#1489)
* Allow either URL or URN CRS URIs * Implemented transformation of geometries in CQL filter * Fixed flake8 issue * Removed commented out code * Implemented support for the filter-crs query parameter * Remove unneeded print() calls
This commit is contained in:
committed by
GitHub
parent
de787b0f22
commit
2d0fc5df3e
@@ -40,6 +40,15 @@ Using Elasticsearch the following type of queries are supported right now:
|
||||
* Logical ``and`` query with ``between`` and ``eq`` expression
|
||||
* Spatial query with ``bbox``
|
||||
|
||||
Note that when using a spatial operator in your filter expression, geometries are by default interpreted as being
|
||||
in the OGC:CRS84 Coordinate Reference System. If you wish to provide geometries in other CRS, use the ``filter-crs``
|
||||
query parameter with a suitable value.
|
||||
|
||||
Alternatively, a geometry's CRS may also be included using Extended Well-Known Text, in which case it will override
|
||||
the value of ``filter-crs`` (if any) - this can be useful if your filtering expression is complex enough to
|
||||
need multiple geometries expressed in different CRSs. The standard way of providing ``filter-crs`` as an additional
|
||||
query parameter is preferable for most cases.
|
||||
|
||||
Examples
|
||||
^^^^^^^^
|
||||
|
||||
@@ -93,4 +102,20 @@ A ``CROSSES`` example via an HTTP GET request. The CQL text is passed via the `
|
||||
|
||||
curl "http://localhost:5000/collections/hot_osm_waterways/items?f=json&filter=CROSSES(foo_geom,%20LINESTRING(28%20-2,%2030%20-4))"
|
||||
|
||||
A ``DWITHIN`` example via HTTP GET and using a custom CRS for the filter geometry:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
curl "http://localhost:5000/collections/beni/items?filter=DWITHIN(geometry,POINT(1392921%205145517),100,meters)&filter-crs=http://www.opengis.net/def/crs/EPSG/0/3857"
|
||||
|
||||
|
||||
The same example, but this time providing a geometry in EWKT format:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
curl "http://localhost:5000/collections/beni/items?filter=DWITHIN(geometry,SRID=3857;POINT(1392921%205145517),100,meters)"
|
||||
|
||||
|
||||
|
||||
|
||||
Note that the CQL text has been URL encoded. This is required in curl commands but when entering in a browser, plain text can be used e.g. ``CROSSES(foo_geom, LINESTRING(28 -2, 30 -4))``.
|
||||
|
||||
Reference in New Issue
Block a user