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
1601 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(
29
f"""
30
L.control.groupedLayers(
31
null,
32
{{
33
"groups1" : {{
34
"g1" : {fg1.get_name()},
35
"g2" : {fg2.get_name()},
36
}},
37
}},
38
{{"exclusiveGroups": ["groups1",],}},
39
).addTo({m.get_name()});
40
{fg2.get_name()}.remove();
41
"""
42
)
43
assert expected in out
44
45