Andrea,

Please feel free to move them around as needed, your plan sounds great!

I have encountered one awkward difficult with the use of zoom levels as a
very cheerful shorthand for scale denominator. I got a bit stuck on with
mbox style where zoom level was defined with respect to web mercator.

At the time there were discussion of:
1. Treat zoom-level as using referencing the grid set being drawn? I can
see how this make sense (may have to pass in something from GWC)
2. Treat zoom-level as always defined  with respect to web mercator? This
interacts well with normal SLD styles …
3. Or have web mercator be the default, with an override (in the file or
from the gridset being drawn)? Can lead to some confusion (it is hard to
even describe).

I believe mbstyle uses option (2) which above.
- -
Jody Garnett


On Sat, Aug 10, 2024 at 3:24 AM Andrea Aime <
andrea.a...@geosolutionsgroup.com> wrote:

> Hi,
> first of all, apologies for the cross post, I've done it because the
> refactor I'm proposing concerns both projects.
>
> I want to add zoom level support in CSS, with a familiar syntax like [@z
> = 10] or [@z >= 15],
> and an eventual tile matrix set choice as a top level directive like @tms
> "myCustomTileMatrixSet".
>
> In order to do so, I'll need to convert zoom levels to scale denominators,
> and look up configured tile
> matrix sets in GeoServer. YSLD has this problem basically already solved,
> with a set of interfaces and
> classes that have apparently nothing YSLD specific:
>
>    - ZoomContext
>    
> <https://github.com/geotools/geotools/blob/029dc5c8ccc503de3cfd7f4d1c939d8056c260c4/modules/extension/ysld/src/main/java/org/geotools/ysld/parse/ZoomContext.java#L27>,
>    describing relationships between zoom levels and scale denominators (e.g.,
>    part of what a TileMatrixSet does)
>    - ZoomContextFinder
>    
> <https://github.com/geotools/geotools/blob/029dc5c8ccc503de3cfd7f4d1c939d8056c260c4/modules/extension/ysld/src/main/java/org/geotools/ysld/parse/ZoomContextFinder.java#L27>,
>    to lookup up ZoomContext by name
>    - GWCZoomContextFinder
>    
> <https://github.com/geoserver/geoserver/blob/6e9e25c0c7cdda9ada9f33f8255130d3afc76801/src/extension/ysld/src/main/java/org/geoserver/ysld/GWCZoomContextFinder.java#L22>,
>    to look up specifically GWC configured Tile Matrix Set objects.
>
> I would like to propose the following refactoring, to reuse the same work
> in the CSS parser
>
> Step 1, move the  the ZoomContext* classes to gt-main, inside a new
> org.geotools.styling.zoom package
> (I've checked, it's not taken).
>
> Step 2, move the GWCZoomContextFinder into the GWC module, again for
> sharing purposes.
>
> Then I will be able to use the same functionality from the CSS modules.
> As an added bonus, I'd like to refactor the gs-ysld module so that it
> does not depend on the GWC presence,
> as a deploy might use alternative style languages in WMS, without having
> tile caching embedded in the same process (e.g., GeoServer Cloud).
> The code will look up a ZoomContextFinder using GeoServerExtensions, and
> if not found, use the DefaultZoomContextFinder instead.
>
> If there are no objections, I'll move on with the refactor next week.
>
> Regards,
>
> Andrea Aime
>
>
> ==
> GeoServer Professional Services from the experts!
>
> Visit http://bit.ly/gs-services-us for more information.
> ==
>
> Ing. Andrea Aime
> @geowolf
> Technical Lead
>
> GeoSolutions Group
> phone: +39 0584 962313
>
> fax:     +39 0584 1660272
>
> mob:   +39  339 8844549
>
> https://www.geosolutionsgroup.com/
>
> http://twitter.com/geosolutions_it
>
> -------------------------------------------------------
>
> Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE
> 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si
> precisa che ogni circostanza inerente alla presente email (il suo
> contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è
> riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il
> messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra
> operazione è illecita. Le sarei comunque grato se potesse darmene notizia.
>
> This email is intended only for the person or entity to which it is
> addressed and may contain information that is privileged, confidential or
> otherwise protected from disclosure. We remind that - as provided by
> European Regulation 2016/679 “GDPR” - copying, dissemination or use of this
> e-mail or the information herein by anyone other than the intended
> recipient is prohibited. If you have received this email by mistake, please
> notify us immediately by telephone or e-mail
> _______________________________________________
> GeoTools-Devel mailing list
> GeoTools-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to