{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from ipyleaflet import basemaps, basemap_to_tiles, Map, WidgetControl\n", "from ipywidgets import Dropdown" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "m = Map(center=[0, 0], zoom=2)\n", "\n", "ee_basemaps = {}\n", "\n", "# Loops through all ipyleaflet basemaps\n", "for item in basemaps.values():\n", " try:\n", " name = item[\"name\"]\n", " basemap = \"basemaps.{}\".format(name)\n", " ee_basemaps[name] = basemap_to_tiles(eval(basemap))\n", " except Exception as e:\n", " for sub_item in item:\n", " name = item[sub_item][\"name\"]\n", " basemap = \"basemaps.{}\".format(name)\n", " basemap = basemap.replace(\"Mids\", \"Modis\")\n", " ee_basemaps[name] = basemap_to_tiles(eval(basemap))\n", "\n", "# Adds a Dropdown widget\n", "dropdown = Dropdown(\n", " options=list(ee_basemaps.keys()),\n", " value=\"OpenStreetMap.Mapnik\",\n", " description=\"Basemaps\",\n", ")\n", "\n", "\n", "# Handles Dropdown control event\n", "def on_click(change):\n", " basemap_name = change[\"new\"]\n", " old_basemap = m.layers[-1]\n", " m.substitute_layer(old_basemap, ee_basemaps[basemap_name])\n", "\n", "\n", "dropdown.observe(on_click, \"value\")\n", "\n", "# Adds control to the map\n", "basemap_control = WidgetControl(widget=dropdown, position=\"topright\")\n", "m.add(basemap_control)\n", "\n", "m" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.5" } }, "nbformat": 4, "nbformat_minor": 4 }