我想找到 folium 地图的当前视图位置,以及当前的缩放级别。
我创建了一个地图对象
>> self.map1 = folium.Map(
tiles='Stamen Terrain',
zoom_start=zoom0,
location=coordinate
)
用户与其交互后,我想知道当前查看的坐标和缩放级别。 (在这种情况下保存并在下次启动时调用)
>> print(self.map1.getLocation())
>> print(self.map1.getZoom())
屈服
AttributeError: 'Map' object has no attribute 'getLocation'
AttributeError: 'Map' object has no attribute 'getZoom'
我相信 folium 使用 leaflet,它本身有一个 getZoom() 方法,根据: https://leafletjs.com/reference.html#地图
如何在 folium/python 中访问这些参数?
在 folium 中,我知道有一种替代方法,可以通过使用plugins
来获得
位置。
import folium
from folium import plugins
m = folium.Map(location = [13.8041258,100.4481389],zoom_start = 12 )
第一种方法是使用
MousePosition plugin
通过鼠标位置获取位置。
roundnum = "function(num) {return L.Util.formatNum(num, 5);};"
plugins.MousePosition(position='topright', separator=' | ', prefix="Position:",lat_formatter=roundnum, lng_formatter=roundnum).add_to(m)
m
第二种是使用
Draw plugin
在地图上放置标记,然后点击它,即可看到位置。
plugins.Draw(export=False, position='topleft', draw_options=None, edit_options=None).add_to(m)
m
不幸的是,我不知道如何获得缩放级别。 希望这有帮助
Folium库中没有这样的函数。根据我自己的经验,我建议使用 leafletjs 库来从更多选项中受益,因为我在 Folium 中遇到了与您相同的问题。
在streamlit folium中,您可以使用具有地图对象的缩放和质心的输出对象作为返回字典的键。请参阅下面的示例输出:
{ “最后点击”:NULL “last_object_clicked”:NULL “last_object_clicked_tooltip”:NULL “所有图纸”:NULL “last_active_drawing”:NULL “界限”:{ “_西南”:{ “纬度”:22.897683210648072 “液化天然气”:-113.48876953125001 } “_东北”:{ “纬度”:37.97884504049713 “液化石油气”:-91.51611328125001 } } “缩放”:6 “最后一个圆半径”:NULL “最后一个圆多边形”:NULL “中心”:{ “纬度”:30.727670895047673 “液化天然气”:-102.50244140625001 } }