Google Colab中Geemap无法显示交互式地图问题求助
问题描述
2022年7月7日在Google Colab平台使用Geemap开展开发工作时,此前可正常运行的代码当日突然无法渲染展示交互式地图;更换其他公开的、确认可正常运行的代码测试后,问题仍然复现。
复现问题的示例代码如下:
rgb2 = ['B8_median','B11_median','B4_median'] # 配置可视化阈值 rgbViz2 = {"min":0.0, "max":3000,"bands":rgb2} collectionx = ee.ImageCollection('COPERNICUS/S2_SR').filterDate("2020-06-25","2020-09-11").filterBounds(aoi2).filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE",6)) collectionrgb = collectionx.select('B8','B11','B4', 'B3','B2') medianx = collectionrgb.reduce(ee.Reducer.median()); # 打印输出影像波段名 bandNames = medianx.bandNames() print('Band names: ', bandNames.getInfo()) # 初始化地图 map6 = geemap.Map() map6.centerObject(aoi2, 8) map6.addLayer(medianx.clip(aoi2), rgbViz2, "S2") map6.addLayerControl() map6
问题根因
这是2022年7月Google Colab运行环境依赖升级触发的共性兼容问题,和业务代码逻辑无关。当时Colab默认预装的ipyleaflet版本迭代到0.17.x,和同期Geemap旧版本的地图组件渲染逻辑存在API冲突,所有未锁定依赖版本的Colab笔记本都会出现交互式地图无法渲染、输出白屏的问题,更换其他代码测试也会复现相同故障。
修复方案
按以下步骤操作即可恢复正常:
- 在笔记本最顶部新增独立单元格,执行命令安装版本匹配的依赖包,执行完成后按提示重启Colab运行时:
!pip install geemap==0.17.3 ipyleaflet==0.16.0 -q
- 删除示例代码中的
map6.addLayerControl()行:Geemap 0.13.0及之后版本已默认加载图层控制组件,重复调用该方法会在版本不匹配时直接打断组件渲染流程。 - 每次重新连接Colab运行时后,优先执行Earth Engine鉴权初始化,避免鉴权失效导致的图层加载异常:
import ee import geemap ee.Authenticate() ee.Initialize()
- 上述步骤执行完成后再运行地图相关业务代码,即可正常渲染交互式地图。
内容的提问来源于stack exchange,提问作者Giancarlo
相关产品推荐
相关产品推荐

