A new major-release that comes with a lot of updates, performance improvements and some very nice new features!
> ❗ There are possibly breaking changes with respect to EOmaps v5.x ❗
> (... and a lot of old syntax from v3.x, v4.x and v5.x has been removed)
> - An overview of the most important changes is provided here: [⚙ From EOmaps v5.x to v6.x](https://eomaps.readthedocs.io/en/dev/FAQ.html#from-eomaps-v5-x-to-v6-x)
🌳 New
🌴 Performance improvements!
EOmaps v6.0 represents a major change in the internals for layer and data management.
◰ Data Management
🌟 Data is now dynamically pre-selected based on the visible extent prior to plotting, which provides a **huge speed-up** for:
- Zoom/pan on plots of very large datasets
- Initial startup of plots that show only a subset of the assigned datasets
> If you don't need to see the whole extent of the data, make sure to set the desired extent **before** calling `m.plot_map()` via
> - `m.set.extent()`
> - `m.set_extent_to_location()`
⧉ Composing layers
🌟 The interface to combine, stack or overlay layers has been greatly improved in terms of speed and usability.
- To overlay the layer `"B"` on top of the layer `"A"`, simply use `m.show_layer("A", "B")`
- To overlay a layer with a **global transparency**, provide a tuple of `(<layer-name>, <transparency>)`
e.g.: ``m.show_layer("A", ("B", 0.5))`` will overlay the layer `"B"` with 50% transparency
- Associated [🧰 Companion Widget](https://eomaps.readthedocs.io/en/latest/api.html#companion-widget) updates
- The order at which layers are selected in the `layer-dropdown` now determines the stacking order of the layers
- To change the stacking order, simply **re-arrange the (movable) layer-tabs** in the `Compare` and `Edit` views!).
![rearrange_layers](https://user-images.githubusercontent.com/22773387/216811983-eb0fd1f8-21ae-4e85-9a43-16123fae9cfc.gif)
🌲 new functionalities
- `m.set_extent()`: set the map extent
- `m.inherit_classification`: use the classification of a given Maps object (useful to avoid costly classifications for zoomed-in plots that show only a fraction of the data)
- `m.inherit_data()`: share the data between Maps objects
- `m.text()` add plain text
- `peek-layer` callbacks now support `"round"` peek-shapes in addition to rectangles!
- `m.cb.click.attach.peek_layer(shape="round")`
- checkout the new button in the "Peek Layer" section of the [🧰 Companion Widget](https://eomaps.readthedocs.io/en/latest/api.html#companion-widget)
- Control the behavior of WebMap services if the size of the axes or figure is changing
- `m.refetch_wms_on_size_change()`: toggle global behavior for WebMap services
- use `m.savefig(refetch_wms=False)` to avoid re-fetching WebMaps if you save figures at different dpi!
🔨 Fixes
- fix `val_color` for forwarded pick callbacks
- estimate shape radius for x- and y- direction separately when using 2D datasets
- fix transparency for cached background layers
- handle possible exceptions in companion-widget drawer tab
- make sure companion-widget dropdown does not close on layer-changes
- fix attaching pick callbacks prior to plotting datasets
- fix triggering re-draws of layers if artists are added to the "all" layer
- fix treatment of animated axes in layout editor
- fix cancelling save-file dialog
- fix compass behavior on figure size changes
- fix compass position and size on figure dpi changes
- fix handling of spines
- make sure inset-maps are always drawn above other maps
- avoid re-drawing the background when drawing shapes
- use `annotation_clip=True` for annotations by default
- adjust default zorders of shapes and webmaps