m = Map(center=[0, 0], zoom=2)
ee_basemaps={}
# Loops through all ipyleaflet basemaps
for item in basemaps.values():
try:
name = item['name']
basemap = 'basemaps.{}'.format(name)
ee_basemaps[name] = basemap_to_tiles(eval(basemap))
except:
for sub_item in item:
name = item[sub_item]['name']
basemap = 'basemaps.{}'.format(name)
basemap = basemap.replace('Mids', 'Modis')
ee_basemaps[name] = basemap_to_tiles(eval(basemap))
# Adds a Dropdown widget
dropdown = Dropdown(
options=list(ee_basemaps.keys()),
value='OpenStreetMap.Mapnik',
description='Basemaps'
)
# Handles Dropdown control event
def on_click(change):
basemap_name = change['new']
old_basemap = m.layers[-1]
m.substitute_layer(old_basemap, ee_basemaps[basemap_name])
dropdown.observe(on_click, 'value')
# Adds control to the map
basemap_control = WidgetControl(widget=dropdown, position='topright')
m.add_control(basemap_control)
m