Skip to content

Commit

Permalink
Fix add_basemap Google tiles issue
Browse files Browse the repository at this point in the history
  • Loading branch information
giswqs committed May 7, 2024
1 parent 9c0397e commit 88e53f1
Showing 1 changed file with 10 additions and 33 deletions.
43 changes: 10 additions & 33 deletions geemap/geemap.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,6 @@ def __init__(self, **kwargs):
if "max_zoom" not in kwargs:
kwargs["max_zoom"] = 24

# Use any basemap available through the basemap module, such as 'ROADMAP', 'OpenTopoMap'
if "basemap" in kwargs:
kwargs["basemap"] = check_basemap(kwargs["basemap"])
if kwargs["basemap"] in basemaps.keys():
kwargs["basemap"] = get_basemap(kwargs["basemap"])
kwargs["add_google_map"] = False
else:
kwargs.pop("basemap")
elif "Google.Roadmap" in basemaps.keys():
kwargs["basemap"] = get_basemap("Google.Roadmap")
self._xyz_dict = get_xyz_dict()

self.baseclass = "ipyleaflet"
Expand Down Expand Up @@ -412,34 +402,26 @@ def get_scale(self):

getScale = get_scale

def add_basemap(self, basemap="ROADMAP", show=True, **kwargs):
def add_basemap(
self, basemap: Optional[str] = "ROADMAP", show: Optional[bool] = True, **kwargs
) -> None:
"""Adds a basemap to the map.
Args:
basemap (str, optional): Can be one of string from basemaps. Defaults to 'ROADMAP'.
visible (bool, optional): Whether the basemap is visible or not. Defaults to True.
show (bool, optional): Whether the basemap is visible or not. Defaults to True.
**kwargs: Keyword arguments for the TileLayer.
"""
import xyzservices
from .basemaps import check_basemap_alias, GoogleMapsTileProvider

try:
layer_names = self.get_layer_names()

map_dict = {
"ROADMAP": "Esri.WorldStreetMap",
"SATELLITE": "Esri.WorldImagery",
"TERRAIN": "Esri.WorldTopoMap",
"HYBRID": "Esri.WorldImagery",
}
basemap = check_basemap_alias(basemap)

if isinstance(basemap, str):
if basemap.upper() in map_dict:
if basemap in os.environ:
if "name" in kwargs:
kwargs["name"] = basemap
basemap = os.environ[basemap]
else:
basemap = map_dict[basemap.upper()]
if isinstance(basemap, str) and "Google" in basemap:
basemap = GoogleMapsTileProvider(basemap, **kwargs)

if isinstance(basemap, xyzservices.TileProvider):
name = basemap.name
Expand Down Expand Up @@ -947,18 +929,13 @@ def _on_basemap_changed(self, basemap_name):
bounds = [bounds[0][1], bounds[0][0], bounds[1][1], bounds[1][0]]
self.zoom_to_bounds(bounds)

def add_basemap_widget(self, value="OpenStreetMap", position="topright"):
def add_basemap_widget(self, position="topright"):
"""Add the Basemap GUI to the map.
Args:
value (str): The default value from basemaps to select. Defaults to "OpenStreetMap".
position (str, optional): The position of the Inspector GUI. Defaults to "topright".
"""
super()._add_basemap_selector(
position, basemaps=list(basemaps.keys()), value=value
)
if basemap_selector := self._basemap_selector:
basemap_selector.on_basemap_changed = self._on_basemap_changed
super()._add_basemap_selector(position=position)

def add_draw_control(self, position="topleft"):
"""Add a draw control to the map
Expand Down

0 comments on commit 88e53f1

Please sign in to comment.