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

时间:2018-02-14 14:37:01

标签: python leaflet folium

这是我的folium代码:

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

这是我得到的输出: enter image description here

传单地图有两个问题:

  1. 大陆在循环中显示2次或更多次。
  2. 地图可以在循环中从左到右无条件地平移,反之亦然。
  3. 这两件事都令人讨厌。第一个问题可以通过将zoom_start设置为除了1之外的其他内容来暂时解决。但即使这样,缩小地图也会再次导致此问题。关于第二个越少越好。

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

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

2 个答案:

答案 0 :(得分:2)

有可能!只需使用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)

我认为2的min_zoom应该做的工作

答案 1 :(得分:1)

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

这是一个例子:

m = folium.Map(location=loc,max_bounds=True)