giswqs commited on
Commit
d1af6ee
·
1 Parent(s): 03c7c7c

Add split map

Browse files
Files changed (1) hide show
  1. 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 update_geojson(m):
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
- checkbox_control = ipyleaflet.WidgetControl(widget=checkbox, position='topright')
 
 
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
- "url": "https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
98
- "attribution": "Google",
99
- "name": "Google Satellite",
100
- }
101
  self.add_tile_layer(**basemap, shown=False)
102
  self.add_layer_manager(opened=False)
103
- update_geojson(self)
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