From 96fbf2aa60c72f2a5223e4bb6610034a3c5a0939 Mon Sep 17 00:00:00 2001 From: Hans Then Date: Sun, 7 Sep 2025 19:58:31 +0200 Subject: [PATCH] Closes #2182. Add the newly created layers to the drawnItems feature group. --- folium/plugins/geoman.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/folium/plugins/geoman.py b/folium/plugins/geoman.py index a427961191..d8a06607bb 100644 --- a/folium/plugins/geoman.py +++ b/folium/plugins/geoman.py @@ -34,6 +34,7 @@ class GeoMan(JSCSSMixin, MacroElement): {{ this._parent.get_name() }} ); {%- endif %} + /* The global variable below is needed to prevent streamlit-folium from barfing :-( */ @@ -42,6 +43,7 @@ class GeoMan(JSCSSMixin, MacroElement): {{this.get_name()}}.addControls( {{this.options|tojavascript}} ) + drawnItems_{{ this.get_name() }}.eachLayer(function(layer){ L.PM.reInitLayer(layer); {%- for event, handler in this.on.items() %} @@ -52,7 +54,7 @@ class GeoMan(JSCSSMixin, MacroElement): {%- endfor %} }); - {{ this._parent.get_name() }}.on("pm:create", function(e) { + var new_element_handler_{{ this.get_name() }} = function(e) { var layer = e.layer, type = e.layerType; @@ -62,19 +64,11 @@ class GeoMan(JSCSSMixin, MacroElement): {{handler}} ); {%- endfor %} - }); + drawnItems_{{ this.get_name() }}.addLayer(layer); + }; - {{ this._parent.get_name() }}.on("pm:cut", function(e) { - var layer = e.layer, - type = e.layerType; - - {%- for event, handler in this.on.items() %} - layer.on( - "{{event}}", - {{handler}} - ); - {%- endfor %} - }); + {{ this._parent.get_name() }}.on("pm:create", new_element_handler_{{ this.get_name() }}); + {{ this._parent.get_name() }}.on("pm:cut", new_element_handler_{{ this.get_name() }}); {% endmacro %} """