This release represents a complete re-work compared to EOmaps v1.x.x !
πΌ A documentation is now available on readthedocs! [>>> check it out here](https://eomaps.readthedocs.io/)
π³ new
π΄ WMS and WMTS capabilities
- β requires optional dependency `owslib`
- WMTS (or WMS) layers can be added via:
- `m.add_wmts.<COLELCTION>.add_layer.<LAYER>(**kwargs)`
- `m.add_wmts.<COLELCTION>[<LAYER>](**kwargs)`
- pre-defined layers include interfaces to
- ESA Copernicus & WorldCover layers
- Sentinel-1 Global Backscatter Model
- EEA Discomap layers
- NASA GIBS
- Austrian basemaps (basemap.at & Vienna)
- ... and more!
π΅ re-arrange plot-axes via drag & drop
- press `alt` + `d` to activate / deactivate "axis-arrangement" mode
- use the mouse to select the axis you want to change
- use "left/right/up/down" or the mouse to move the selected layer
- use "alt+left/right/up/down" to move the layer quicker
- use "ctrl+up/down" to show/hide colorbars & histograms
π² share callback-events between multiple Maps objects
- e.g.: click on one map to trigger a callback on multiple connected maps!
- to connect maps-objects, provide a "parent"-object on initialization `m = Maps(parent=m0)`
- forward callback-triggers from one Maps object to others via:
`m.cb.click.forward_events(m1, m2, m3)`
- ... or join the callback-events "both-ways" via
`m.cb.click.share_events(m1, m2, m3)`
π±... and some more:
- there's a new `MapsGrid` object to quickly initialize a grid of Maps-objects
`m1, m2, m3, m4 = MapsGrid(2, 2)`
- join zoom-limits between multiple axes (with the same crs)
`m.join_limits(m1, m2, m3)`
π¦ changes
- `f`, `gs_ax` and `orientation` are now set on initialization of the Maps-object!
(they are no longer arguments of `m.plot_map()`)
- callbacks are now accessed differently
- instead of `m.cb.attach()` and `m.cb_click.attach` there's now
- `m.cb.click` : trigger callbacks when clicking anywhere on the map
- `m.cb.pick` : trigger callbacks when clicking on a point of the plotted dataset
- `m.cb.keypress` : trigger callbacks when pressing a key
- `m.cb.dynamic` : trigger callbacks on events (e.g. zoom)
π¨ fixes
- make sure shapes are properly copied on `m.copy()`
- make sure `geod_circles` only takes numbers as radius
- sharing callbacks now works across coordinate-systems!
- multiple temporary markers & annotations are now supported