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

New conformance for maps with scales, legend and compass #97

Open
joanma747 opened this issue Sep 29, 2022 · 7 comments
Open

New conformance for maps with scales, legend and compass #97

joanma747 opened this issue Sep 29, 2022 · 7 comments

Comments

@joanma747
Copy link
Contributor

This a new req class for core
New scale parameter with values

\collections\buildings\style\night\map?legend=true|topLeft....
\collections\buildings\style\night\map?scale=true|topLeft....
\collections\buildings\style\night\map?compass=true|topLeft....
\collections\buildings\map?legend=true|topLeft....
\collections\buildings\map?scale=true|topLeft....
\collections\buildings\map?compass=true|topLeft....

This a new req class for an extension of the maps core.
\collections\buildings\style\night\legend (the legend as a renderization or a list of symbols and descriptions)
\collections\buildings\legend (the default style legend as a renderization or a list of symbols and descriptions)
This last possibility reflect the need to synchronize the styles API and the maps API.

@joanma747 joanma747 moved this from In Progress to Decided and To Be Applied in OGC API - Maps Part 1: Core (1.0) Sep 29, 2022
@joanma747 joanma747 moved this from Decided and To Be Applied to Can we close? in OGC API - Maps Part 1: Core (1.0) Oct 30, 2022
@joanma747
Copy link
Contributor Author

It seems that people talk about "the 5 elements of a map": https://reference.yourdictionary.com/resources/5-basic-parts-of-any-map.html. In my case, I came up with a title, a legend, a scale bar, a compass, a situation map, an attribution text or logo, a lat/long graticule, and a CRS grid to the map. All has been proposed in a req. class called "decorations":
https://github.com/opengeospatial/ogcapi-maps/blob/master/core/standard/clause_7b_map_decorations.adoc

@jerstlouis
Copy link
Member

jerstlouis commented Oct 30, 2022

@joanma747 I imagine the graticule(s) / CRS grid could sometimes be in different coordinate system? (and sometimes multiple grids are shown, possibly also a different thickness/color for different resolution of the same grid)
e.g,, UTM / MGRS https://www.map.army/doc/en/map/coordinategrid/ (even a DGGS hexgonal grid).
We could possibly unify the graticule / CRS grid concepts but allow that extra flexibiilty?

Extending the idea of the situation map are insets that present a zoomed in version of a small area, but still relatively small compared to the big map (that's also mentioned next to "locator map" on that yourdictionary.com page).

If we consider the full map layout (especially the "title", which is rarely if ever shown on the map itself), we probably also need to consider margins and rulers showing units (as opposed to the graticule overlaid on top of the map). Those notches in the margin may have a higher resolution than the lines overlaid on top of the map for the graticule / CRS grid. yourdictionary.com also mentions the border / neatline which makes sense together with that margin.

As a name for all this, I would suggest something like Cartographic Layout rather than Decorations.
But I am thinking each of these things are very different functionality which servers may often only partially implement, so they could each be in their own conformance class organized together in one section (even in a Part 2: Cartographic Layout if we realize this is too much for Part 1: Core).

@joanma747
Copy link
Contributor Author

Thanks for the suggestions. I do not want to go to far with this. I'll see what I can do with all this. I'm not in favor of having a miriad of conformance classes that will make what a client could expect from a server completely unpredictable. Since the final form of this cartographic elements are at the discretion of the server, one possible accepted behavior for a server that is not able to provide the functionality is doing almost nothing or nothing at all. I'll clarify this in the requirements.

@joanma747
Copy link
Contributor Author

We knowledge the complexities of this: Example: https://openlayers.org/en/latest/apidoc/module-ol_layer_Graticule-Graticule.html
We decided to keep it on part 1 to see how people react. As soon as we realize the discussion could delay maps api part 1 we will move it into part 2 and make it more comprehensive there.
Every element in a different conformance class
There is the suggestion of unifying graticule and grid-crs: Lets try something like grid-crs=EPSG:4326,EPSG:28531,EPSG:28530
(note that we are changing from crs-grid)

@joanma747 joanma747 moved this from Can we close? to Decided and To Be Applied in OGC API - Maps Part 1: Core (1.0) Nov 3, 2022
@jerstlouis
Copy link
Member

Other useful prior art link from OpenLayers: https://mapserver.org/pl/mapfile/grid.html

@joanma747 joanma747 moved this from Decided and To Be Applied to Can we close? in OGC API - Maps Part 1: Core (1.0) Nov 19, 2022
@joanma747 joanma747 moved this from Can we close? to Applied and pending review in OGC API - Maps Part 1: Core (1.0) Nov 24, 2022
@joanma747
Copy link
Contributor Author

joanma747 commented Nov 24, 2022

Replace map-legend by legend-position and the same for the others.
Add situation-map-url to define the situation map using a map request.
grid-resolutions=
grid-lines=false,true
margin (distances in the same way as css does with units)
border and padding (wide in pixels, css?) https://www.w3schools.com/css/css_boxmodel.asp

@joanma747 joanma747 moved this from Applied and pending review to Decided and To Be Applied in OGC API - Maps Part 1: Core (1.0) Nov 24, 2022
@jerstlouis
Copy link
Member

At the 125th Members Meeting OGC API - Maps SWG session in Frascati, there was a general agreement that it would make sense to defer this to an extension to take the time to gather requirements and make sure to properly cover the use cases.
We could still maintain the proposed minimalistic approach as the "Core" of that extension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants