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 |
|