Folium添加Stamen toner-background瓦片图层无显示问题求助
解决folium加载Stamen Toner-Background瓦片无内容的问题
我帮你排查下问题所在,其实核心是瓦片URL格式错误,另外我也会详细解释attr属性的作用:
1. 问题根源:错误的瓦片URL
你当前使用的tiles='http://maps.stamen.com/toner-background/embed#6/{x}/{z}'是Stamen官网的嵌入预览页面地址,不是供地图库调用的瓦片切片服务地址。folium需要的是能动态生成每个瓦片图片的URL模板(必须包含{z}缩放级别、{x}/{y}瓦片坐标参数),这样才能正确加载对应位置的瓦片资源。
Stamen Toner-Background的官方瓦片服务URL模板是:
https://stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}{r}.png
其中:
{s}:用于负载均衡的子域名(folium会自动替换为a/b/c/d){z}:地图缩放级别{x}/{y}:瓦片的网格坐标{r}:可选的Retina屏幕适配参数(为空时是普通分辨率,传入@2x可加载高清瓦片)
2. attr属性的作用
attr是用来设置瓦片图层的版权/归属声明的,几乎所有公开瓦片服务都要求标注版权信息(否则可能违反使用条款)。Stamen的瓦片需要标注设计者和数据来源的版权,官方推荐的声明内容是:Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL.
3. 修正后的完整代码
把URL和attr替换成正确内容后,代码就能正常加载你想要的无国名标签的底图了:
import folium mapa = folium.Map( width=1000, height=700, zoom_start=5.5, location=[52.5, 19], tiles='https://stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}{r}.png', attr='Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL.' ) # 保存地图到HTML文件,打开即可看到效果 mapa.save('toner_background_map.html')
这样你就能得到简洁美观、无额外标签的Toner-Background底图啦~
内容的提问来源于stack exchange,提问作者ggegoge
相关产品推荐
相关产品推荐

