11from branca .element import MacroElement
22
3- from folium .elements import JSCSSMixin
3+ from folium .elements import JSCSSMixin , leaflet_method
44from folium .template import Template
55from folium .utilities import remove_empty
66
@@ -22,6 +22,8 @@ class GeoMan(JSCSSMixin, MacroElement):
2222 _template = Template (
2323 """
2424 {% macro script(this, kwargs) %}
25+ /* ensure the name is usable */
26+ var {{this.get_name()}} = {{this._parent.get_name()}}.pm;
2527 {%- if this.feature_group %}
2628 var drawnItems_{{ this.get_name() }} =
2729 {{ this.feature_group.get_name() }};
@@ -32,12 +34,12 @@ class GeoMan(JSCSSMixin, MacroElement):
3234 {{ this._parent.get_name() }}
3335 );
3436 {%- endif %}
35- /* The global varianble below is needed to prevent streamlit-folium
37+ /* The global variable below is needed to prevent streamlit-folium
3638 from barfing :-(
3739 */
3840 var drawnItems = drawnItems_{{ this.get_name() }};
3941
40- {{this._parent. get_name()}}.pm .addControls(
42+ {{this.get_name()}}.addControls(
4143 {{this.options|tojavascript}}
4244 )
4345 drawnItems_{{ this.get_name() }}.eachLayer(function(layer){
@@ -60,12 +62,6 @@ class GeoMan(JSCSSMixin, MacroElement):
6062 {{handler}}
6163 );
6264 {%- endfor %}
63- drawnItems_{{ this.get_name() }}.addLayer(layer);
64- });
65- {{ this._parent.get_name() }}.on("pm:remove", function(e) {
66- var layer = e.layer,
67- type = e.layerType;
68- drawnItems_{{ this.get_name() }}.removeLayer(layer);
6965 });
7066
7167 {% endmacro %}
@@ -85,17 +81,65 @@ class GeoMan(JSCSSMixin, MacroElement):
8581 )
8682 ]
8783
88- def __init__ (
89- self ,
90- position = "topleft" ,
91- feature_group = None ,
92- on = None ,
93- ** kwargs ,
94- ):
84+ def __init__ (self , position = "topleft" , feature_group = None , on = None , ** kwargs ):
9585 super ().__init__ ()
9686 self ._name = "GeoMan"
9787 self .feature_group = feature_group
9888 self .on = on or {}
99- self .options = remove_empty (
100- position = position , layer_group = feature_group , ** kwargs
101- )
89+ self .options = remove_empty (position = position , ** kwargs )
90+
91+ @leaflet_method
92+ def set_global_options (self , ** kwargs ):
93+ pass
94+
95+ @leaflet_method
96+ def enable_draw (self , shape , / , ** kwargs ):
97+ pass
98+
99+ @leaflet_method
100+ def disable_draw (self ):
101+ pass
102+
103+ @leaflet_method
104+ def set_path_options (self , * , options_modifier , ** options ):
105+ pass
106+
107+ @leaflet_method
108+ def enable_global_edit_mode (self , ** options ):
109+ pass
110+
111+ @leaflet_method
112+ def disable_global_edit_mode (self ):
113+ pass
114+
115+ @leaflet_method
116+ def enable_global_drag_mode (self ):
117+ pass
118+
119+ @leaflet_method
120+ def disable_global_drag_mode (self ):
121+ pass
122+
123+ @leaflet_method
124+ def enable_global_removal_mode (self ):
125+ pass
126+
127+ @leaflet_method
128+ def disable_global_removal_mode (self ):
129+ pass
130+
131+ @leaflet_method
132+ def enable_global_cut_mode (self ):
133+ pass
134+
135+ @leaflet_method
136+ def disable_global_cut_mode (self ):
137+ pass
138+
139+ @leaflet_method
140+ def enable_global_rotation_mode (self ):
141+ pass
142+
143+ @leaflet_method
144+ def disable_global_rotation_mode (self ):
145+ pass
0 commit comments