You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在本地Python版Apache Superset中配置OpenStreetMap替代MapBox?

解决Apache Superset配置OpenStreetMap替代MapBox无效果的问题

问题原因

你参考的PR#33603并未合并到Superset 5.0.0正式版本,仅在beta6及后续的beta版本、正式版本中包含了让DECKGL_BASE_MAP配置生效的相关功能逻辑。因此在5.0.0正式版中修改配置后,地图样式选择器不会出现OpenStreetMap选项。

可行解决方案

方案一:升级Superset版本

直接升级到包含PR#33603的版本(如beta6或更高版本,待对应稳定正式版发布后也可升级),升级完成后,你之前配置的DECKGL_BASE_MAP、Talisman的connect-src以及CORS相关设置会生效,地图样式选择器中就能看到OpenStreetMap选项。

方案二:手动补全5.0.0正式版的功能(不推荐)

如果暂时不想升级版本,需要手动补充前端层面的支持(该PR同时修改了后端配置和前端地图选择器逻辑),步骤如下:

  • 找到本地Superset的前端代码目录,通常路径为venv/lib/pythonX.X/site-packages/superset-frontend(X.X为你的Python版本)
  • 修改地图选择相关的前端组件代码,添加OpenStreetMap的选项映射
  • 安装Node.js环境后,在前端目录执行npm install && npm run build重新构建前端资源
  • 重启Superset服务

此方案操作复杂,且后续版本升级会覆盖手动修改的内容,优先推荐方案一。

配置验证

升级或修改完成后,确保以下配置正确:

TALISMAN_ENABLED = True
# 在TALISMAN_CONFIG和TALISMAN_DEV_CONFIG的connect-src中添加https://c.tile.openstreetmap.org
DECKGL_BASE_MAP = [
     ['https://c.tile.openstreetmap.org/{z}/{x}/{y}.png', 'OpenStreetMap' ],
]
ENABLE_CORS = True
CORS_OPTIONS: dict[Any, Any] = {
    "origins": [
        "https://c.tile.openstreetmap.org",
    ]
}

重启Superset服务后即可生效。

内容的提问来源于stack exchange,提问作者Je Je

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:35