我正在使用数据帧df中的信息在folium中实现一个映射。我包含经度,纬度,名称和地区信息。 使用我在这里采用的GeoJson文件:https://github.com/martinjc/UK-GeoJSON,我可以在英国定义区域,在用鼠标指针悬停时突出显示它们并显示一些信息。我想用一个按钮为每个区域创建一个弹出窗口。如果单击该按钮,则该区域中df中的所有条目都显示为标记。可能吗?我现在使用的代码如下:
...operations on df and definition of the map m...
width = 10
heigth = 4
resolution = 75
def style_function(feature):
return {
'fillColor': '#ffaf00',
'color': 'grey',
'weight': 1.5,
'dashArray': '5, 5'
}
def highlight_function(feature):
return {
'fillColor': '#ffaf00',
'color': 'black',
'weight': 3,
'dashArray': '5, 5'
}
c = folium.GeoJson(geojsonFile,
name = 'Highlight',
overlay=True,
style_function = style_function,
highlight_function = highlight_function)
html = '{}<br> Info: {} <br> <buttononclick="window.location.reload()">Reload</button>'.format
frame = IFrame(html(name, info), width=(width*resolution)+20, height=(height*resolution)+20)
popup_text = folium.Popup(iframe, max_width=2650)
c.add_child(folium.Popup(popup_text))
c.add_to(m)
我可以在弹出窗口中添加按钮;我想要做的是定义一个像:
这样的函数def testFunction(df, region):
markerCluster = folium.plugins.MarkerCluster().add_to(map)
for index, row in df.iterrows():
if row['region'] == region:
folium.Marker([row['lat'], row['lon']], popup='some text').add_to(markerCluster)
单击按钮时将运行。我要找的最终效果应该是:打开地图,单击所选区域,单击按钮,区域上的标记出现。但我还没有找到任何解决方案(我已尝试使用Flask但没有成功)。