-
Notifications
You must be signed in to change notification settings - Fork 1
Description
(https://github.com/opengeospatial/ogcapi-environmental-data-retrieval/blob/master/standard/openapi/schemas/extent.yaml)[ogcapi-environmental-data-retrieval/standard/openapi/schemas/extent.yaml] declares that extent.bbox is an array with a minimum of one item. It describes it as:
One or more bounding boxes that describe the spatial extent of the dataset. In the Core only a single bounding box is supported. Extensions may support additional areas. If multiple areas are provided, the union of the bounding boxes describes the spatial extent.
Each item is an array of 4 or 6 items, giving the minimum and maximum coordinates for 2D and 3D bounding boxes respectively.
The items are described as:
Each bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth):
- Lower left corner, coordinate axis 1
- Lower left corner, coordinate axis 2
- Minimum value, coordinate axis 3 (optional)
- Upper right corner, coordinate axis 1
- Upper right corner, coordinate axis 2
- Maximum value, coordinate axis 3 (optional)
The coordinate reference system of the values is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in
crs.For WGS 84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).
If the vertical axis is included, the third and the sixth number are the bottom and the top of the 3-dimensional bounding box.
If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.
Currently, our implementation only allows a single bounding box (as modelled by edr_server.core.models.extent.SpatialExtent)
We should:
- add support for multiple bounding boxes (both to the model, and to the [de]serialisation code)
- consider adding some kind of convenience method that calculates the union of the bounding box