folium 限制用户拖动地图

问题描述 投票:0回答:3

我在设置 max_lat/min_lat max_lon/min_lon 时遇到问题,因此我可以限制用户在地图上滚动。

map = folium.Map(location = [41.1227, 20.7999],
                 min_lot=40.876401,
                 max_lot=41.16237,
                 min_lat=20.77199,
                 max_lat=20.85032,
                 tiles = 'CartoDB dark_matter',
                 zoom_start = 13,
                 max_zoom = 18,
                 min_zoom =13,
                 width = '100%',
                 height = '40%',
                 zoom_control=False )

即使一切都准备好了,我仍然可以拖来拖去。如有任何帮助,我们将不胜感激!

python folium
3个回答
1
投票

固定显示范围的一个简单方法是添加

max_bounds=True
。它似乎只是限制了纬度。最大和最小缩放值之间的最窄间隔可能会导致使用水平滚动时产生更高的负载,这可能会抑制拖动操作。

import folium

map = folium.Map(location = [41.1227, 20.7999],
                 min_lot=40.876401,
                 max_lot=41.16237,
                 min_lat=20.77199,
                 max_lat=20.85032,
                 max_bounds=True,
                 zoom_start = 6,
                 max_zoom = 5,
                 min_zoom =4,
                 width = '100%',
                 height = '100%',
                 zoom_control=False )
# map.fit_bounds([[40.876401,20.77199],[41.16237,20.85032]])
map

1
投票

尝试分别将 min_lot 和 max_lot 更改为 min_lon 和 max_lon。这应该会停止无限水平平移。


0
投票

您需要结合此处给出的两个答案,即设置

max_bounds=True
修复纵向范围参数中的拼写错误:

m = folium.Map(
    min_lon = 40.8, # example values taken from OP
    max_lon = 41.2,
    min_lat = 20.7,
    max_lat = 20.9,
    max_bounds=True,
    # any other arguments you may want to pass
)

就可以了。 (

Map
构造函数不会抱怨拼写错误的参数。)

© www.soinside.com 2019 - 2024. All rights reserved.