Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
python-visualization
GitHub Repository: python-visualization/folium
Path: blob/main/tests/plugins/test_grouped_layer_control.py
2531 views
1
import folium
2
from folium.plugins import groupedlayercontrol
3
from folium.utilities import normalize
4
5
6
def test_grouped_layer_control():
7
m = folium.Map([40.0, 70.0], zoom_start=6)
8
fg1 = folium.FeatureGroup(name="g1")
9
fg2 = folium.FeatureGroup(name="g2")
10
fg3 = folium.FeatureGroup(name="g3")
11
folium.Marker([40, 74]).add_to(fg1)
12
folium.Marker([38, 72]).add_to(fg2)
13
folium.Marker([40, 72]).add_to(fg3)
14
m.add_child(fg1)
15
m.add_child(fg2)
16
m.add_child(fg3)
17
lc = groupedlayercontrol.GroupedLayerControl(groups={"groups1": [fg1, fg2]})
18
lc.add_to(m)
19
out = m._parent.render()
20
print(out)
21
out = normalize(out)
22
23
assert (
24
"https://cdnjs.cloudflare.com/ajax/libs/leaflet-groupedlayercontrol/0.6.1/leaflet.groupedlayercontrol.min.js"
25
in out
26
)
27
28
expected = normalize(f"""
29
L.control.groupedLayers(
30
null,
31
{{
32
"groups1" : {{
33
"g1" : {fg1.get_name()},
34
"g2" : {fg2.get_name()},
35
}},
36
}},
37
{{"exclusiveGroups": ["groups1",],}},
38
).addTo({m.get_name()});
39
{fg2.get_name()}.remove();
40
""")
41
assert expected in out
42
43