Browse Source

improve panning and zooming in `ui.leaflet` (fixes #2826)

Falko Schindler 1 year ago
parent
commit
91524aa973
2 changed files with 5 additions and 8 deletions
  1. 3 6
      nicegui/elements/leaflet.js
  2. 2 2
      nicegui/elements/leaflet.py

+ 3 - 6
nicegui/elements/leaflet.js

@@ -107,13 +107,10 @@ export default {
       clearInterval(connectInterval);
     }, 100);
   },
+  updated() {
+    this.map?.setView(this.center, this.zoom);
+  },
   methods: {
-    setCenter(center) {
-      this.map.panTo(center);
-    },
-    setZoom(zoom) {
-      this.map.setZoom(zoom);
-    },
     add_layer(layer, id) {
       const l = L[layer.type](...layer.args);
       l.id = id;

+ 2 - 2
nicegui/elements/leaflet.py

@@ -98,14 +98,14 @@ class Leaflet(Element, component='leaflet.js'):
         if self._props['center'] == center:
             return
         self._props['center'] = center
-        self.run_method('setCenter', center)
+        self.update()
 
     def set_zoom(self, zoom: int) -> None:
         """Set the zoom level of the map."""
         if self._props['zoom'] == zoom:
             return
         self._props['zoom'] = zoom
-        self.run_method('setZoom', zoom)
+        self.update()
 
     def remove_layer(self, layer: Layer) -> None:
         """Remove a layer from the map."""