Meh*_*mud 5 python popup python-3.x leaflet folium
最近我将 folium 从 0.5.0 更新到 0.11.0,此后我遇到了弹出框的问题。随着更新,弹出框的宽度似乎有所缩小,并且文本以单独的行出现,这恰好与前一版本的 folium 出现在同一行中。代码没有进行任何更改。
如何将弹出框更改为与前一个一样,即文本不换行?
弹出框代码:
fgc.add_child(folium.Marker(location=[lt, ln], popup= "<h4> <b>Thana : " + di +"</h4></b>"+ "<br><b>Cases Total:  : </b>"+str(ca)+ " person "+ "<br>" + "<b>Cases 24 hours : </b>"+ str(da)+ " person "+"<br>"+"<b>Cases 7 days: </b>"+str(we)+ " person "+"<br><b>Neighbouhood affected : </b>"+str(ne)
Run Code Online (Sandbox Code Playgroud)
小智 9
我处理这个问题的方法是创建一个 IFrame 来处理数据帧变量,然后将其传递给弹出类,这应该适用于数据库或数据帧。
for (index, row) in df.iterrows():
if row.loc['BRANCH'] == 1:
iframe = folium.IFrame('Account#:' + str(row.loc['ACCT']) + '<br>' + 'Name: ' + row.loc['NAME'] + '<br>' + 'Terr#: ' + str(row.loc['TERR']))
popup = folium.Popup(iframe, min_width=300, max_width=300)
folium.Marker(location=[row.loc['LAT'], row.loc['LON']], icon=folium.Icon(color=row.loc['COLOR'], icon='map-marker', prefix='fa'), popup=popup).add_to(map1)
Run Code Online (Sandbox Code Playgroud)
如果没有可复制的代码,就不可能为您提供量身定制的解决方案。作为一般建议,您可以使用和参数folium.Popup()的组合来强制弹出窗口的宽度。min_widthmax_width
例如:
import folium
m = folium.Map(location=[43.775, 11.254],
zoom_start=5)
html = '''1 aaaaaaaaaaaaaaaaaa aaaa aaa aa aaaaa aaa aaaa a a a a<br>2 aaaaaaaaaa aaa aaaaa aaaaa<br>3 aaaaa aaaaaa aaaaa aaa aaaaa<br>4 aaa aaa aaaaaaaa
'''
iframe = folium.IFrame(html)
popup = folium.Popup(iframe,
min_width=500,
max_width=500)
marker = folium.Marker([43.775, 11.254],
popup=popup).add_to(m)
m
Run Code Online (Sandbox Code Playgroud)
你得到: