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(basemap_control)
m