设置地图边界并停止在 Folium 地图循环中无限平移

Ser*_*ard 4 python leaflet folium

这是我的大叶代码:

import folium
mp = folium.Map(location=[37, -102], 
                zoom_start=1, 
                tiles="Stamen Terrain", 
                )
display(mp)
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出: 在此输入图像描述

传单地图有两个问题:

  1. 大陆循环显示 2 次或更多次。
  2. 地图可以从左到右无休止地平移,反之亦然。

这两者都很麻烦。第一个问题可以通过将 设为 1 以外的值来暂时解决。zoom_start但即便如此,缩小地图也会再次出现此问题。关于第二个,越少说越好。

现在我想要的是将地图的边界限制为 [-150, 150, -70, 70] 或更小。我不想通过平移或缩放来显示超出此范围的内容。我也不希望我的地图无限循环地平移。

在 Folium 中可以做到这一点吗?

小智 6

这是可能的!只需使用 min_zoom (和 max_zoom 用于相反的问题)属性!

f = folium.Figure(width=1000, height=500)
m = folium.Map(location= initial_location, tiles="openstreetmap",
zoom_start=zoom_start_defined, min_zoom = min_zoom_defined).add_to(f)
Run Code Online (Sandbox Code Playgroud)

我认为 min_zoom 为 2 就可以了


小智 6

一种简单的方法是使用函数max_bounds中的参数Map()并将其设置为True。使用此参数可将地图限制为各大洲的一个视图。

这是一个例子:

m = folium.Map(location=loc,max_bounds=True)
Run Code Online (Sandbox Code Playgroud)