Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paging and extent ... #572

Closed
pvretano opened this issue Apr 29, 2021 · 4 comments · Fixed by #667
Closed

Paging and extent ... #572

pvretano opened this issue Apr 29, 2021 · 4 comments · Fixed by #667
Labels
Part 1: Core Issue related to Part 1 - Core

Comments

@pvretano
Copy link
Contributor

pvretano commented Apr 29, 2021

A number of output formats (e.g. GML, GeoJSON) allow extent information to be included in the response. Now consider that I execute a query that fetches 1M records 10K at a time. Should the extent specified on each page be the extent of the features on that page or the extent of the result set of the query?

My feeling is that it should be the extend of the result set and not the features on any particular page. That extent of the features on a page is fairly quick and easy to compute since the client has the information in hand so I would think that the extent of the result set is more useful.

In any case, it might be helpful to have a short informative discussion in the core or even a recommendation.

@cportele cportele added the Part 1: Core Issue related to Part 1 - Core label Apr 29, 2021
@cportele cportele added this to Backlog in Features Part 1: Core via automation Apr 29, 2021
@cportele
Copy link
Member

I agree, it would make sense to at least discuss this in the GeoJSON and GML requirements classes. And I agree, too, about the extent being the extent of the complete response, not the page.

That raises a question: I don't remember seeing a bbox included in GeoJSON FeatureCollection output from Features APIs. Do we know that clients are actually using this information, if it is provided?

Depending on the backend and dataset size it may be considered too costly to compute the extent of the result set first. ldproxy allows to switch off computing numberMatched for that reason.

@pvretano
Copy link
Contributor Author

@cportele CubeWerx client code does use that information but I am not aware of any other clients that might.
Agreed about computing that information; cubeserv has a similar setup.

@pomakis
Copy link

pomakis commented May 4, 2021

I think the specification should state that the extent information, if present, shall be the extent of the full result set. This gives servers an out if determining the extent is too onerous, but allows clients to interpret the extent unambiguously if one is given.

One use case for having this extent information is to prepare a plot window of the appropriate extent. You certainly don't want to have to force the client to pre-fetch all of the features to determine an appropriate plot window before rendering a single pixel. Having reliable extent information up front may also aid in certain optimizations.

@jvanulde
Copy link
Contributor

jvanulde commented May 4, 2021

We are walking a fine line between records and features here. Not in disagreement with the points made here, just saying that the extent of all features could be considered as metadata.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Part 1: Core Issue related to Part 1 - Core
Projects
Development

Successfully merging a pull request may close this issue.

4 participants