From b8cf1ca63a8ea38aba8b3f7d785d9cb64f065db6 Mon Sep 17 00:00:00 2001 From: dfguerrerom Date: Fri, 31 Jul 2026 16:21:36 +0200 Subject: [PATCH] feat: default map min_zoom of 5 SepalMap never set min_zoom, so the map inherited ipyleaflet's 0. Floor zoom-out at level 5, overridable via the constructor. --- component/widget/map.py | 6 ++++-- tests/test_map_zoom.py | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 tests/test_map_zoom.py diff --git a/component/widget/map.py b/component/widget/map.py index 26dbe14..f2e552a 100644 --- a/component/widget/map.py +++ b/component/widget/map.py @@ -88,8 +88,10 @@ def _build_class_colormap(class_colors: dict) -> dict: class SbaeMap(SepalMap): """SBAE Map class extending SepalMap for map visualization and interactions.""" - def __init__(self, theme_toggle: ThemeToggle, gee: bool = False): - super().__init__(fullscreen=True, theme_toggle=theme_toggle, gee=gee) + def __init__(self, theme_toggle: ThemeToggle, gee: bool = False, min_zoom: int = 5): + super().__init__( + fullscreen=True, theme_toggle=theme_toggle, gee=gee, min_zoom=min_zoom + ) self.classification_layer = None self.sample_points_layer = None diff --git a/tests/test_map_zoom.py b/tests/test_map_zoom.py new file mode 100644 index 0000000..7c26edd --- /dev/null +++ b/tests/test_map_zoom.py @@ -0,0 +1,13 @@ +"""SbaeMap floors zoom-out at level 5; SepalMap leaves min_zoom unset (leaflet's 0).""" + +from sepal_ui.sepalwidgets.vue_app import ThemeToggle + +from component.widget.map import SbaeMap + + +def test_map_defaults_to_min_zoom_five(): + assert SbaeMap(theme_toggle=ThemeToggle()).min_zoom == 5 + + +def test_map_min_zoom_is_overridable(): + assert SbaeMap(theme_toggle=ThemeToggle(), min_zoom=0).min_zoom == 0