Spaces:
Running
Running
Add split map
Browse files- pages/01_morocco.py +35 -7
pages/01_morocco.py
CHANGED
@@ -24,7 +24,7 @@ def get_catalogs(name):
|
|
24 |
return catalog_ids
|
25 |
|
26 |
|
27 |
-
def
|
28 |
datasets = get_datasets()['dataset'].tolist()
|
29 |
|
30 |
style = {"description_width": "initial"}
|
@@ -52,6 +52,13 @@ def update_geojson(m):
|
|
52 |
layout=widgets.Layout(width="130px", padding=padding),
|
53 |
)
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
def change_dataset(change):
|
56 |
default_geojson = f'{url}/datasets/{change.new}.geojson'
|
57 |
m.layers = m.layers[:2]
|
@@ -77,9 +84,30 @@ def update_geojson(m):
|
|
77 |
|
78 |
checkbox.observe(change_footprint, names='value')
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
event_control = ipyleaflet.WidgetControl(widget=dataset, position='topright')
|
81 |
image_control = ipyleaflet.WidgetControl(widget=image, position='topright')
|
82 |
-
|
|
|
|
|
83 |
m.add(event_control)
|
84 |
m.add(image_control)
|
85 |
m.add(checkbox_control)
|
@@ -94,13 +122,13 @@ class Map(leafmap.Map):
|
|
94 |
kwargs['toolbar_control'] = False
|
95 |
super().__init__(**kwargs)
|
96 |
basemap = {
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
self.add_tile_layer(**basemap, shown=False)
|
102 |
self.add_layer_manager(opened=False)
|
103 |
-
|
104 |
default_geojson = f'{url}/datasets/Morocco-Earthquake-Sept-2023.geojson'
|
105 |
self.add_geojson(default_geojson, layer_name='Footprint', zoom_to_layer=True)
|
106 |
|
|
|
24 |
return catalog_ids
|
25 |
|
26 |
|
27 |
+
def add_widgets(m):
|
28 |
datasets = get_datasets()['dataset'].tolist()
|
29 |
|
30 |
style = {"description_width": "initial"}
|
|
|
52 |
layout=widgets.Layout(width="130px", padding=padding),
|
53 |
)
|
54 |
|
55 |
+
split = widgets.Checkbox(
|
56 |
+
value=False,
|
57 |
+
description='Split map',
|
58 |
+
style=style,
|
59 |
+
layout=widgets.Layout(width="130px", padding=padding),
|
60 |
+
)
|
61 |
+
|
62 |
def change_dataset(change):
|
63 |
default_geojson = f'{url}/datasets/{change.new}.geojson'
|
64 |
m.layers = m.layers[:2]
|
|
|
84 |
|
85 |
checkbox.observe(change_footprint, names='value')
|
86 |
|
87 |
+
def change_split(change):
|
88 |
+
if change.new:
|
89 |
+
if image.value is not None:
|
90 |
+
left_layer = m.find_layer(image.value)
|
91 |
+
right_layer = m.find_layer('Google Satellite')
|
92 |
+
right_layer.visible = True
|
93 |
+
footprint_layer = m.find_layer('Footprint')
|
94 |
+
footprint_layer.visible = False
|
95 |
+
m.split_map(
|
96 |
+
left_layer=left_layer,
|
97 |
+
right_layer=right_layer,
|
98 |
+
add_close_button=True,
|
99 |
+
)
|
100 |
+
split.value = False
|
101 |
+
else:
|
102 |
+
left_layer = None
|
103 |
+
|
104 |
+
split.observe(change_split, names='value')
|
105 |
+
|
106 |
event_control = ipyleaflet.WidgetControl(widget=dataset, position='topright')
|
107 |
image_control = ipyleaflet.WidgetControl(widget=image, position='topright')
|
108 |
+
checkboxes = widgets.HBox([checkbox, split])
|
109 |
+
checkbox_control = ipyleaflet.WidgetControl(widget=checkboxes, position='topright')
|
110 |
+
|
111 |
m.add(event_control)
|
112 |
m.add(image_control)
|
113 |
m.add(checkbox_control)
|
|
|
122 |
kwargs['toolbar_control'] = False
|
123 |
super().__init__(**kwargs)
|
124 |
basemap = {
|
125 |
+
"url": "https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
|
126 |
+
"attribution": "Google",
|
127 |
+
"name": "Google Satellite",
|
128 |
+
}
|
129 |
self.add_tile_layer(**basemap, shown=False)
|
130 |
self.add_layer_manager(opened=False)
|
131 |
+
add_widgets(self)
|
132 |
default_geojson = f'{url}/datasets/Morocco-Earthquake-Sept-2023.geojson'
|
133 |
self.add_geojson(default_geojson, layer_name='Footprint', zoom_to_layer=True)
|
134 |
|