Repository navigation
Expand file tree
/
Copy pathtest_grouped_layer_control.py
More file actions
73 lines (66 loc) · 2.3 KB
/
Copy pathtest_grouped_layer_control.py
File metadata and controls
73 lines (66 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import folium
from folium.plugins import groupedlayercontrol
from folium.utilities import normalize
def test_grouped_layer_control():
m = folium.Map([40.0, 70.0], zoom_start=6)
fg1 = folium.FeatureGroup(name="g1")
fg2 = folium.FeatureGroup(name="g2")
fg3 = folium.FeatureGroup(name="g3")
folium.Marker([40, 74]).add_to(fg1)
folium.Marker([38, 72]).add_to(fg2)
folium.Marker([40, 72]).add_to(fg3)
m.add_child(fg1)
m.add_child(fg2)
m.add_child(fg3)
lc = groupedlayercontrol.GroupedLayerControl(groups={"groups1": [fg1, fg2]})
lc.add_to(m)
out = m._parent.render()
print(out)
out = normalize(out)
assert (
"https://cdnjs.cloudflare.com/ajax/libs/leaflet-groupedlayercontrol/0.6.1/leaflet.groupedlayercontrol.min.js"
in out
)
expected = normalize(f"""
L.control.groupedLayers(
null,
{{
"groups1" : {{
"g1" : {fg1.get_name()},
"g2" : {fg2.get_name()},
}},
}},
{{"exclusiveGroups": ["groups1",],}},
).addTo({m.get_name()});
{fg2.get_name()}.remove();
""")
assert expected in out
def test_grouped_layer_control_base_layers():
m = folium.Map([40.0, 70.0], zoom_start=6, tiles=None)
osm = folium.TileLayer("OpenStreetMap", name="osm").add_to(m)
topo = folium.TileLayer("OpenTopoMap", name="topo", show=False).add_to(m)
fg1 = folium.FeatureGroup(name="g1").add_to(m)
fg2 = folium.FeatureGroup(name="g2").add_to(m)
groupedlayercontrol.GroupedLayerControl(
groups={"groups1": [fg1, fg2]}, base_layers=[osm, topo]
).add_to(m)
lc = folium.LayerControl().add_to(m)
out = normalize(m._parent.render())
expected = normalize(f"""
L.control.groupedLayers(
{{
"osm" : {osm.get_name()},
"topo" : {topo.get_name()},
}},
{{
"groups1" : {{
"g1" : {fg1.get_name()},
"g2" : {fg2.get_name()},
}},
}},
{{"exclusiveGroups": ["groups1",],}},
).addTo({m.get_name()});
""")
assert expected in out
# The base layers are no longer listed in the regular LayerControl.
assert not lc.base_layers