如何在folium地图中加载Stamen Toner瓦片?
Folium加载Stamen Toner瓦片失败的解决方法
问题根源
手动提取url和attribution的方式可能存在格式不兼容问题,或者folium支持直接传入xyzservices的瓦片提供者对象,无需拆分参数。
修复方案(推荐)
替换地图初始化代码,直接传入xyzservices的Stamen.Toner对象,让folium自动处理URL和版权信息:
# 保留原有的import和数据处理代码 # ... # 修改地图初始化部分 m = folium.Map( location=centre_of_map, zoom_start=5, tiles=xyz.Stamen.Toner ) # 后续添加标记的代码保持不变 # ...
注:folium会自动从xyzservices对象中读取正确的attribution,无需单独传入attr参数。
备选修复方案
如果直接传入对象无效,可手动指定Stamen Toner的官方瓦片URL和版权声明:
TONER_URL = "https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png" ATTRIB = 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL.' m = folium.Map( location=centre_of_map, zoom_start=5, tiles=TONER_URL, attr=ATTRIB )
排查步骤
如果仍无法加载,打开浏览器开发者工具(F12),切换到「网络」标签,查看瓦片请求的状态:
- 若出现404错误,说明URL格式不正确
- 若出现跨域错误,需确认瓦片服务器是否允许跨域访问
内容的提问来源于stack exchange,提问作者elksie5000
相关产品推荐
相关产品推荐

